私が直面している問題を前に進めます。以下のようにプログラムでUITextField
を作成しています。
UItextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)];
mobileNumberField.delegate = self;
mobileNumberField.borderStyle = UITextBorderStyleRoundedRect;
[mobileNumberField.layer setCornerRadius:14.0f];
mobileNumberField.placeholder = @"Mobile Number";
[self.paymentsHomeView addSubview:mobileNumberField];
出力は添付画像です。
なぜそれがコーナーで壊れているのか分かりません。下に添付されている画像のようにテキストフィールドを修正するのを手伝ってください。
前もって感謝します..!
この行を削除してください...
mobileNumberField.borderStyle = UITextBorderStyleRoundedRect;
このコードも追加します。
[mobileNumberField setBackgroundColor:[UIColor whiteColor]];
[mobileNumberField.layer setBorderColor:[UIColor grayColor].CGColor];
[mobileNumberField.layer setBorderWidth:1.0];
これがお役に立てば幸いです。
以下のように更新してください。
UITextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)];
mobileNumberField.delegate = self;
mobileNumberField.layer.borderWidth = 1.0f;
mobileNumberField.layer.borderColor = [UIColor lightGrayColor].CGColor;
mobileNumberField.
// mobileNumberField.borderStyle = UITextBorderStyleRoundedRect;
[mobileNumberField.layer setCornerRadius:14.0f];
mobileNumberField.placeholder = @"Mobile Number";
[self.paymentsHomeView addSubview:mobileNumberField];
textField.layer.cornerRadius=textfield.frame.size.height/2;
textField.clipsToBounds=YES;
角が切り取られているのは、テキストフィールドを囲むビューがあるためです。角の半径を設定すると、そのビューに適用されるため、内側のテキストフィールドの角が切り取られているように見えます-実際には変更されていません。
解決策は、UITextField
をUIView
内に配置し、テキストフィールドのボーダースタイルをなしに設定することです。次に、境界線とコーナーの半径指定をuiviewに適用します。同じではないにしても、UITextField borderColorに非常に近いborderColorに注意してください。
執筆時点で、Xcode 7.3.1でテストおよび動作し、Swift 2.2、iOS 8および9。
迅速:
textField.borderStyle = UITextBorderStyle.None
textBorderView.layer.cornerRadius = 5
textBorderView.layer.borderWidth = 1
textBorderView.layer.borderColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.2).CGColor
ここにあなたの問題の解決策があります
UITextField * txtField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 50)];
[txtField setBorderStyle:UITextBorderStyleNone];
[txtField.layer setMasksToBounds:YES];
[txtField.layer setCornerRadius:10.0f];
[txtField.layer setBorderColor:[[UIColor lightGrayColor]CGColor]];
[txtField.layer setBorderWidth:1];
[txtField setTextAlignment:UITextAlignmentCenter];
[txtField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[self.view addSubview:txtField];
Swift 3ソリューション:
ボーダーとコーナーの半径をSwiftの任意のレイヤーに設定する別の関数を作成しました。ビューのレイヤー、ボーダーの幅、コーナーの半径とボーダーの色を次の関数に渡すだけです。
` func setBorderAndCornerRadius(layer: CALayer, width: CGFloat, radius: CGFloat,color : UIColor ) {
layer.borderColor = color.cgColor
layer.borderWidth = width
layer.cornerRadius = radius
layer.masksToBounds = true
}
`