Tôi đã gặp một số vấn đề với việc gọi số -becomeFirstResponder
trên UITextField
có bộ điều khiển chế độ xem được trình bày theo phương thức. Tôi gọi phương thức này trong phương thức -viewDidLoad
của bộ điều khiển chế độ xem để bàn phím được hiển thị ngay lập tức. Những gì tôi mong đợi là cho cả bàn phím và bộ điều khiển chế độ xem để hoạt ảnh từ dưới cùng của màn hình cùng một lúc. Tuy nhiên, những gì tôi đang quan sát như sau:Các vấn đề về hoạt ảnh bàn phím Khi gọi trở thànhFirstResponder trong Bộ điều khiển chế độ xem phương thức
- Có một ~ 0,2 lag UI thứ hai giữa cách nhấn vào nút đó gọi phương thức
-presentModalViewController:animated:
trên bộ điều khiển xem cha mẹ và khi điều khiển xem đứa trẻ bắt đầu để animate modally. - Bàn phím được hiển thị ngay lập tức hoàn toàn không có hoạt ảnh ngay khi hoạt ảnh của chế độ xem của bộ điều khiển chế độ bắt đầu.
- Khi hoạt ảnh của bộ điều khiển chế độ xem hoàn tất, mọi thứ khác có vẻ hoạt động trơn tru.
- Loại bỏ bộ điều khiển chế độ xem phương thức khiến màn hình tắt động trơn tru (cùng với bàn phím, tình cờ).
- Nhấp vào nút trình bày bộ điều khiển chế độ xem bất kỳ lúc nào sau lần đầu tiên kết quả trong cùng một mẫu ngoại trừ việc không có độ trễ UI 0,2 giây.
Giống như hoạt ảnh của bàn phím và hoạt ảnh của bộ điều khiển chế độ xem đều cạnh tranh với một số tài nguyên Hoạt ảnh lõi cấp thấp hơn cùng một lúc, nhưng tôi không hiểu tại sao điều này xảy ra. Hơn nữa, có vẻ để chứng thực linh cảm này là nếu tôi không yêu cầu UITextField
trở thành người trả lời đầu tiên (nghĩa là nếu tôi không yêu cầu bàn phím tự trình bày), thì hoàn toàn không có giao diện người dùng và trình điều khiển chế độ xem hoạt hình ngay lập tức.
Điều thú vị là nếu tôi làm điều gì đó giống như [self.textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0001];
thì hoạt ảnh của bàn phím sẽ xảy ra gần như cùng lúc với hoạt ảnh của bộ điều khiển chế độ xem - rất khó để biết rằng chúng không được hoạt ảnh cùng một lúc khi chạy trên iPhone Simulator. Tuy nhiên, khi chạy trên một thiết bị thực tế, nó dễ dàng nhận thấy rằng bàn phím không xuất hiện cho đến sau khi bộ điều khiển xem phương thức được trình bày. Quan trọng hơn, mặc dù, không có độ trễ giao diện người dùng nào khác.
Có ai có kinh nghiệm về điều này không?
Bạn đã thử sử dụng UIImageView của bàn phím trong hoạt ảnh để tạo hình dạng mong muốn một cách giả tạo? –
Trên iPhone 6s với iOS 9.3.2 Tôi hài lòng với cách bàn phím hoạt hình, nhưng tôi quan sát thấy sự chậm trễ này lần đầu tiên tôi gọi trở thànhFirstResponder từ viewDidLoad, quá. Sau một số thử nghiệm, tôi phát hiện ra rằng bản trình bày bàn phím đầu tiên sau khi khởi chạy ứng dụng bị trì hoãn, bất kể nó được kích hoạt như thế nào. Và sự chậm trễ này chỉ xảy ra khi trình gỡ lỗi được đính kèm. –