建立 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 可防止內容過多時滾動干擾編輯體驗。