UITextField: problema de la esquina networkingondeada

Traigo el problema al que me enfrento. Estoy creando un UITextField programáticamente como se muestra a continuación.

 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]; 

La salida es la image adjunta.

introduzca la descripción de la imagen aquí

No sé por qué está rompiendo en las esquinas. Ayúdame a corregir mi campo de text como la image adjunta a continuación.

introduzca la descripción de la imagen aquí

Gracias por adelantado..!

simplemente elimine esta línea …

 mobileNumberField.borderStyle = UITextBorderStyleRoundedRect; 

y agrega este código también …

  [mobileNumberField setBackgroundColor:[UIColor whiteColor]]; [mobileNumberField.layer setBorderColor:[UIColor grayColor].CGColor]; [mobileNumberField.layer setBorderWidth:1.0]; 

Espero que esto te ayude..

Actualiza tu me gusta a continuación.

  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]; 

La razón por la que se cortan las esquinas es porque hay una vista adjunta al campo de text. Cuando configura el radio de la esquina, se aplica a esa vista y, por lo tanto, las esquinas del campo de text interior parecen cortarse; en realidad, ni siquiera han cambiado.

La solución es poner el UITextField dentro de UIView , establecer el estilo de borde de campo de text en ninguno. A continuación, aplique la especificación de radio de borde y esquina a la vista uiview. Tenga en count el borderColor, que está muy cerca, si no es el mismo, del borde de color UITextField.

A partir de la escritura, probado y funciona en Xcode 7.3.1, Swift 2.2, iOS 8 y 9.

Rápido:

 textField.borderStyle = UITextBorderStyle.None textBorderView.layer.cornerRadius = 5 textBorderView.layer.borderWidth = 1 textBorderView.layer.borderColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.2).CGColor 

Aquí está la solución de su problema

 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]; 

Solución Swift 3:

He escrito una function por separado para establecer el borde y el radio de la esquina a cualquier capa en swift, simplemente debes pasar la capa de cualquier vista, ancho de borde, radio de esquina y color del borde a la siguiente function

 ` func setBorderAndCornerRadius(layer: CALayer, width: CGFloat, radius: CGFloat,color : UIColor ) { layer.borderColor = color.cgColor layer.borderWidth = width layer.cornerRadius = radius layer.masksToBounds = true } 

 textField.layer.cornerRadius=textfield.frame.size.height/2; textField.clipsToBounds=YES;