Iphone UITextField-圆角问题
我提出了我面临的问题。我正在以编程方式创建一个Iphone UITextField-圆角问题,iphone,objective-c,ios,ios5,uitextfield,Iphone,Objective C,Ios,Ios5,Uitextfield,我提出了我面临的问题。我正在以编程方式创建一个UITextField,如下所示 UItextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)]; mobileNumberField.delegate = self; mobileNumberField.borderStyle = UITextBorderStyleRoundedRect; [mobileNumberF
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];
输出是附加的图像
我不知道它为什么在拐角处断裂。帮助我修复我的文本字段,如下图所示
提前谢谢 更新您的以下内容
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];
只要去掉这条线
mobileNumberField.borderStyle = UITextBorderStyleRoundedRect;
并添加此代码
[mobileNumberField setBackgroundColor:[UIColor whiteColor]];
[mobileNumberField.layer setBorderColor:[UIColor grayColor].CGColor];
[mobileNumberField.layer setBorderWidth:1.0];
我希望这对你有帮助。这是你问题的解决办法
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];
拐角被截断的原因是文本字段有一个封闭视图。当您设置角半径时,应用于该视图,因此内部文本字段的角似乎被剪切-实际上它们甚至没有更改 解决方案是将
UITextField
放在UIView
中,将textfield borderstyle设置为none。然后将边界和拐角半径规范应用于uiview。请注意borderColor,它与UITextField 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
Swift 3解决方案:
textField.layer.borderWidth = anyWidth
textField.layer.borderColor = anyColor
textField.layer.cornerRadius = textField.frame.size.height/2
textField.clipsToBounds = true
我已经编写了单独的函数来设置swift中任意图层的边框和角半径,你只需将任意视图的图层、边框宽度、角半径和边框颜色传递给下面的函数即可
` func setBorderAndCornerRadius(layer: CALayer, width: CGFloat, radius: CGFloat,color : UIColor ) {
layer.borderColor = color.cgColor
layer.borderWidth = width
layer.cornerRadius = radius
layer.masksToBounds = true
}
`swift解决方案:
textField.layer.borderWidth = anyWidth
textField.layer.borderColor = anyColor
textField.layer.cornerRadius = textField.frame.size.height/2
textField.clipsToBounds = true
以下代码在Swift 5,XCode 11.4中给出了以下结果。
肯定可以添加更多的铃声和口哨。我认为这是一个很好的MVP
naviTextField = UITextField.init(frame: CGRect(x: 0, y: 0, width: (self.navigationController?.navigationBar.frame.size.width)!, height: 21))
self.navigationItem.titleView = naviTextField
naviTextField.becomeFirstResponder()
naviTextField.placeholder = "Type target name here"
naviTextField.borderStyle = .roundedRect
naviTextField.layer.cornerRadius = 5.0
naviTextField.textAlignment = .center
默认情况下,文本字段采用UITextBorderStyleNone。如果删除上面的行,则没有边框。您可以改为设置borderColor。已尝试设置边框颜色。但是它不适用,因为没有边界。谢谢你。。!从Joshi的答案中找到了解决方案。它是有效的,但当我应用它时,占位符文本和txtField的前导边框之间没有任何位置。你知道如何解决这个问题吗(我试着在占位符的开头空白:“占位符文本”而不是“占位符文本”,但不起作用)?它的创建循环文本字段