2015-11-06 18 views
7

Tôi đã triển khai Force Touch trong ứng dụng của mình trong chế độ xem trò chuyện. Khi người dùng chạm vào bong bóng tin nhắn trò chuyện của người dùng khác, tiểu sử của họ sẽ được hiển thị. Đối với một số lý do lạ, khi bong bóng tin nhắn được nhấn nhẹ, quá trình chuyển đổi tương tác bị kẹt và tất cả những gì có thể nhìn thấy là ảnh chụp màn hình của chế độ xem được cho là bị loại bỏ.Hoạt động cảm ứng lực đóng băng nếu chạm nhẹ vào

Tôi đã gỡ lỗi vấn đề này cũng như sử dụng Trình gỡ lỗi phân cấp xem và UITransitionView chắc chắn là chế độ xem nhiều nhất. Ứng dụng không bị lỗi - ứng dụng vẫn đang chạy và người dùng vẫn có thể nhận tin nhắn nhưng không xem được, thoát khỏi màn hình, v.v. vì ảnh chụp màn hình bị kẹt ở trên cùng.

Có ai từng gặp bất kỳ vấn đề nào như thế này không? Âm thanh như một lỗi của Apple.

+0

Có lẽ bạn có thể chia sẻ một số mã. Bạn đang sử dụng API peek/pop của Apple? – beyowulf

+0

Xin chào @beyowulf. Tôi sẽ cố gắng và nhân đôi vấn đề với một dự án mẫu và đăng nó ở đây. Có, tôi đang sử dụng API peek/pop. –

+0

Vui lòng xem dự án mẫu trên Github của tôi: https://github.com/JinkProject/PeekPopBug –

Trả lời

0

Tôi đã tìm thấy lý do cho lỗi này.

Nếu điều khiển xem của bạn cần hỗ trợ xem trước cho lực lượng cảm ứng, bạn cần đăng ký điều khiển quan điểm này với đại biểu bằng cách gọi

- (id <UIViewControllerPreviewing>)registerForPreviewingWithDelegate:(id<UIViewControllerPreviewingDelegate>)delegate 
    sourceView:(UIView *)sourceView NS_AVAILABLE_IOS(9_0); 

phương pháp để làm điều này.

Tôi chỉ đột nhiên gọi chức năng này hai lần (một lần trong siêu lớp 'viewDidLoad(), một lần trong bộ điều khiển của trình xem phụ) và khi tôi xóa một lần trong bộ điều khiển của tôi, lỗi này đã được sửa! Tuyệt vời ...

Nó vẫn là một lỗi của Apple vì nó không làm cho sence cho điều đó xảy ra. Tuy nhiên, muốn câu trả lời này có thể giúp các nhà phát triển có cùng vấn đề với tôi.

FYI. Tôi chỉ cần duyệt mã Github của bạn, không tìm thấy cuộc gọi kép nào cho phương thức đăng ký. Có thể có lý do khác cho lỗi này. Bạn có thể thử xóa phương thức đăng ký trong lớp con của UITableViewController. Nhân tiện, tôi tái tạo vấn đề này khi một bộ điều khiển xem sử dụng ComponentKit.

Các vấn đề liên quan