2013-11-21 22 views
10

Tôi gặp sự cố trong hai tình huống hoàn toàn khác nhau, điều này khiến cho nó thực sự kỳ lạ.Độ trễ của trạng thái được đánh dấu của nút

  1. Tình huống: UIButton là dạng phụ của một UIView khác.
  2. Tình huống: UIBarButtonItem trong UIToolBar.

Trong cả hai trường hợp, các nút chỉ được đánh dấu sau một chút chậm trễ, khoảng 0,5 giây. Chắc chắn từ lâu để làm nổi bật chế độ xem khi nhấn vào bình thường. Cả hai đều hoạt động hoàn hảo trên trình giả lập, nhưng không hoạt động trên thiết bị thực (tôi có iPhone 5s với iOS 7.0.4).

Những gì tôi cố gắng
Thiết lập zPosition với giá trị cao nhất (MAXFLOAT) của các quan điểm, để đảm bảo không có gì che vòi nước.
Kích hoạt rõ ràng phần đánh dấu.

Cả hai rõ ràng là không hoạt động.

Chỉnh sửa: Vẫn chưa được giải quyết.

+0

Bạn không thực hiện việc gì giống như cuộc gọi trên máy chủ chính khi nhấn vào các nút đó? Điều đó có thể gây ra sự chậm trễ trong đánh dấu. Bạn nên thực hiện các cuộc gọi đó trong nền nếu có. – FabKremer

+0

làm nổi bật hình ảnh ở định dạng png? –

+0

Tôi đoán bạn đang thực hiện một số công việc nặng nhọc khi nhấn vào các nút đó. Hiển thị hình ảnh đang hoạt động trên chuỗi chính. Bạn có thể kiểm tra chức năng IBAction cho các nút. – Joey

Trả lời

0

UIButtons có nằm trong UIScrollView không? Nếu có, sự chậm trễ là do đó scrollview có thể xác định xem các liên lạc là để di chuyển hoặc nó sẽ được chuyển vào subview.

Xem thêm UIButton touch is delayed when in UIScrollView

+0

Không. Ngoài ra: Tôi đảm bảo không có và đã hoàn toàn nhận thức được điều này. – Leandros

0

Tôi biết nó được một thời gian dài, nhưng tôi chỉ phải đối mặt với một vấn đề tương tự:

  • My UIButton là một subview của UINavigationController.view
  • Không chậm trễ trên giả lập
  • Nhưng có sự chậm trễ để hiển thị đánh dấu trên thiết bị

Tôi chỉ phát hiện ra rằng nó chỉ xảy ra nếu tôi chạy ứng dụng từ Xcode. Nếu tôi ngắt kết nối thiết bị và mở ứng dụng từ biểu tượng thì mọi thứ hoạt động tốt.

Tôi hy vọng điều đó sẽ hữu ích.

2

Điều này có thể xảy ra nếu các nút được đặt gần cạnh dưới cùng của màn hình. Có xung đột với cử chỉ cạnh hệ thống để trình bày Trung tâm điều khiển (hoặc Trình chuyển đổi ứng dụng trên iPhone X và iPad). Nó trì hoãn việc chạm cho các nút của bạn cho đến khi nó được xác định người dùng không thực hiện một cử chỉ hệ thống.

Nếu muốn, bạn có thể yêu cầu hệ thống ưu tiên cho cử chỉ của bạn qua các cử chỉ hệ thống.

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge { 
    return .bottom 
} 

Lưu ý rằng điều này sẽ yêu cầu người dùng vuốt hai lần để kích hoạt cử chỉ hệ thống.

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