2012-03-13 32 views
12

Hành vi mới trong iOS 5.1 có liên quan đến UISplitViewController ứng dụng dường như đang chặn chuyển động UISlider với kết quả không mong muốn. Điều này cũng có thể áp dụng cho các điều khiển UISegmented và bất kỳ bề mặt điều khiển nào khác xử lý các cử chỉ từ trái sang phải.iOS 5,1 cử chỉ swipe bị tấn công bởi UISplitViewController - làm thế nào để tránh?

Với UISplitView theo hướng dọc, chế độ xem Chính thường bị ẩn. Bắt đầu từ iOS 5.1, vuốt sang phải trên màn hình sẽ hiển thị Chế độ xem chính ở phía bên trái của thiết bị. Vấn đề là, trượt ngón tay cái của điều khiển UISlider của tôi bị hiểu sai dưới dạng vuốt màn hình: nếu tôi đưa ngón tay cái UISlider nhấn mạnh vào bên phải, bảng điều khiển Chính bật lên.

Trong ứng dụng của tôi, có các tác dụng phụ không mong muốn (và các vấn đề hiệu suất) với việc làm nổi bật chế độ xem Chính.

Tôi coi hành vi này là lỗi của Apple. Bất kỳ ý tưởng làm thế nào để làm việc xung quanh nó? Tôi có thể bằng cách nào đó có được việc thu thập các cử chỉ và xử lý nó, mà không cần phải chuyển nó lên chuỗi phản hồi hay không?

Cảm ơn trước vì mọi thông tin chi tiết!

+10

nhờ @Dimitris Tavlikos. Trong khi tôi vẫn tin rằng Apple đã giới thiệu một lỗi với điều này (UIControls chẳng hạn như UISlider không nên cạnh tranh với UISplitViewController qua cử chỉ này), có một cách giải quyết dễ dàng: 'splitViewController.presentsWithGesture = NO; // SplitView sẽ không nhận ra đúng swipe ' Điều gì về việc đăng câu hỏi khiến bạn đột nhiên tìm thấy câu trả lời ở nơi khác? – jbbenni

+0

Điều gì sẽ xảy ra nếu tôi muốn duy trì chức năng cử chỉ mặc định trên máy chủ nhưng chỉ tắt chức năng cử chỉ khi thanh trượt đang di chuyển? Đặt 'presentsWithGesture' thành' no' sẽ vô hiệu hóa cử chỉ ở khắp mọi nơi. – Mark13426

+0

Sẽ không xảy ra. Thanh trượt không di chuyển vì cử chỉ bị chặn trước khi thanh trượt bắt đầu di chuyển. Bạn không thể chỉ vô hiệu hóa các hijack trong khi thanh trượt đang di chuyển, bởi vì thanh trượt thậm chí không bắt đầu di chuyển. Đó là một cú sút dài, nhưng có thể có một cách để chặn cử chỉ trước khi xử lý, sau đó xác định xem nó có bắt đầu di chuyển thanh trượt hay không và vô hiệu hóa sự xâm nhập trong trường hợp đó. Nhưng đó là khó khăn. Hệ thống phân cấp của xử lý sự kiện đang hoạt động chống lại bạn, vì hệ điều hành bị bẻ khóa lần đầu theo cử chỉ. – jbbenni

Trả lời

9

Apple đã xác nhận vấn đề này là trùng lặp với lỗi đã báo cáo trước đó hiện đang được điều tra (Bug ID # 10170209).

Cách giải quyết có vẻ hoạt động tốt ngay bây giờ.

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