首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS UITextView 編輯時位置跳動:高度過小導致內部佈局重算

     編輯:程式設計綜合問答

現象

建立 UITextView 時高度設為 25 pt,編輯時文字視圖會發生位移。

原因

UITextView 內部包含 UITextContainer 與排版引擎,最小顯示高度需容納至少一行文字加上內邊距。25 pt 過小,導致編輯時內部佈局重新計算產生視覺跳動。

解決

將初始高度調大至 ≥ 35 pt(視字體大小而定),或使用 Auto Layout 設定約束讓高度自適應:

UITextView *txtView = [[UITextView alloc] initWithFrame:CGRectMake(x, y, 200, 40)];
txtView.font = [UIFont systemFontOfSize:18];
txtView.translatesAutoresizingMaskIntoConstraints = NO;
// 加入約束:高度 >= 40
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:txtView
                                                      attribute:NSLayoutAttributeHeight
                                                      relatedBy:NSLayoutRelationGreaterThanOrEqual
                                                         toItem:nil
                                                      attribute:NSLayoutAttributeNotAnAttribute
                                                     multiplier:1.0
                                                       constant:40]];

補充

  • 若使用 inputView 自訂鍵盤,同樣需確保文字視圖有足夠高度顯示游標與文字。
  • 啟用 scrollEnabled = NO 可防止內容過多時滾動干擾編輯體驗。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved