在具有許多子類和其他基于文本的輸入子類的現有專案中,UITextFields很好UITextViews地self.view向上移動 UIScroll() 視圖以避免鍵盤。
由于 iOS 14UITextField不會UIScrollView為避免鍵盤而向上移動,因此其他所有內容都可以UITextView繼續正常作業,但UITextField不能。未對代碼或委托進行任何更改
- (void)scrollToField:(id)field
{
if (field != nil && [field isKindOfClass:[UIView class]]) {
UIView *control = (UIView *)field;
CGFloat y = control.frame.origin.y - 90.0f;
[self.view setContentOffset:CGPointMake(0, (y < 0 ? 0 : y)) animated:YES];
}
}
問題似乎是UIView *control = (UIView *)field;。我認為 UITextField 不再是 UIView 的一類了?在這個假設下 [ UIView class]&UIView *control = (UIView *)field;都改為UITextField. 視圖仍然沒有像以前那樣向上移動。
- (void)scrollToField:(id)field
{
if (field != nil && [field isKindOfClass:[UITextField class]]) {
UITextField *control = (UITextField *)field;
CGFloat y = control.frame.origin.y - 90.0f;
[self.view setContentOffset:CGPointMake(0, (y < 0 ? 0 : y)) animated:YES];
}
}
總而言之,問題是:
UITextFieldiOS 14 中的類是什么?
如何恢復在UITextFieldiOS 14 之前移動滾動視圖的功能
uj5u.com熱心網友回復:
萬一其他人有這個,-90.0f 的偏移量將其放置在UITextfield導航欄下方,從而阻止滾動。只需將其調整為 -100.0f 就會在導航欄和導航欄之間產生間隙,UITextField并允許像以前一樣的滾動行為
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/462945.html
標籤:IOS 目标-c 可可触感 uitextfield
