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

iOS UITextField 邊框斷裂問題:移除預設樣式並自訂邊框與背景

     編輯:程式設計綜合問答

同時設定 borderStyle 與 layer.cornerRadius 會導致邊框渲染衝突,出現斷裂現象。解決方式是移除預設樣式,改用 CALayer 繪製邊框。

修正程式碼

UITextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)];
mobileNumberField.delegate = self;
// 移除這行:mobileNumberField.borderStyle = UITextBorderStyleRoundedRect;

// 自訂外觀
[mobileNumberField setBackgroundColor:[UIColor whiteColor]];
[mobileNumberField.layer setBorderColor:[UIColor grayColor].CGColor];
[mobileNumberField.layer setBorderWidth:1.0];
[mobileNumberField.layer setCornerRadius:14.0f];
mobileNumberField.placeholder = @"Mobile Number";
[self.paymentsHomeView addSubview:mobileNumberField];

原理

  • borderStyle 會啟用系統內建邊框繪製,與手動設定 layer 衝突。
  • 改用 layer.borderColor、borderWidth、cornerRadius 可完全控制外觀。
  • 背景色設為白色避免透明底顯示異常。

效果

得到完整圓角、單一邊框、無斷裂的輸入框,符合設計稿需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved