Mi vista de inicio de sesión tiene una subvista que tiene un UIActivityView
y un UILabel
dicho "Iniciando sesión ...". Esta subvista tiene esquinas que no son redondeadas. ¿Cómo puedo hacerlos redondos?
¿Hay alguna forma de hacerlo dentro de mi xib?
ios
cocoa-touch
uiview
itsaboutcode
fuente
fuente
cornerRadius
propiedad a la tabla usando solo Interface Builder, sin tener que usar imágenes renderizadas previamente o establecerlas en el código.Respuestas:
Prueba esto
...
Nota: Si está intentando aplicar esquinas redondeadas a
UIViewController
la vista de una vista, no debe aplicarse en el constructor del controlador de vista, sino más bien en-viewDidLoad
, después de queview
se instancia.fuente
También puede usar la característica Atributos de tiempo de ejecución definidos por el usuario del generador de interfaces para establecer la ruta de la clave
layer.cornerRadius
a un valor. SinQuartzCore
embargo, asegúrese de incluir la biblioteca.Este truco también funciona para configurar layer.borderWidth, sin embargo, no funcionará,
layer.borderColor
ya que esto espera unCGColor
noUIColor
.No podrá ver los efectos en el guión gráfico porque estos parámetros se evalúan en tiempo de ejecución.
fuente
Clip Subviews
opción para la vista IBAhora puede usar una categoría rápida en UIView (código debajo de la imagen) con @IBInspectable para mostrar el resultado en el guión gráfico (si está usando la categoría, use solo cornerRadius y no layer.cornerRadius como ruta clave.
fuente
@IBDesignable
para obtener una vista previa en vivo en IB. (Más en nshipster.com/ibinspectable-ibdesignable )Rápido
Respuesta corta:
Respuesta suplementaria
Si ha llegado a esta respuesta, probablemente ya haya visto lo suficiente para resolver su problema. Estoy agregando esta respuesta para dar un poco más de explicación visual de por qué las cosas hacen lo que hacen.
Si comienzas con un regular
UIView
, tiene esquinas cuadradas.Puede darle esquinas redondeadas cambiando la
cornerRadius
propiedad de la vistalayer
.Los valores de radio mayores dan esquinas más redondeadas
y valores más pequeños dan esquinas menos redondeadas.
Esto podría ser suficiente para resolver su problema allí mismo. Sin embargo, a veces una vista puede tener una subvista o una subcapa que se sale de los límites de la vista. Por ejemplo, si tuviera que agregar una vista secundaria como esta
o si tuviera que añadir un sub capa como esto
Entonces terminaría con
Ahora, si no quiero que las cosas cuelguen fuera de los límites, puedo hacer esto
o esto
lo que da este resultado:
Ambos
clipsToBounds
ymasksToBounds
son equivalentes . Es solo que el primero se usa conUIView
y el segundo se usa conCALayer
.Ver también
fuente
blueView.frame.size.height/2
) da como resultado una esquina perfectamente redondeada.Un enfoque diferente al que hizo Ed Marty:
Necesita los setMasksToBounds para que cargue todos los objetos de IB ... Tengo un problema en el que mi vista se redondeó, pero no tenía los objetos de IB: /
esto lo solucionó = D espero que ayude!
fuente
Como se describe en esta publicación de blog , aquí hay un método para redondear las esquinas de una UIView:
Lo bueno de esto es que puedes seleccionar qué esquinas quieres redondear.
fuente
Primero debe importar el archivo de encabezado
<QuartzCore/QuartzCore.h>
No se pierda el uso
setMasksToBounds
; de lo contrario, es posible que no se muestre el efecto.fuente
Puede usar la siguiente
UIView
clase personalizada que también puede cambiar el color y el ancho del borde. Como es esto, tambiénIBDesignalbe
puede cambiar los atributos en el generador de interfaces.fuente
fuente
Swift 4 - Uso de IBDesignable
fuente
layer.cornerRadius
regrese al estado original? (¿Cómo sabe el guión gráfico de xcode cómo configurarcornerRadius
solo después deUIView
inicializar el original )?fuente
- SwiftUI
En SwiftUI, puede usar el
cornerRadius
modificador directamente en elView
que desee. Por ejemplo de esta pregunta:Tenga en cuenta que no hay más diamantes como el radio, por lo que incluso si establece la esquina Radio más de la mitad de la altura , se redondeará suavemente.
Consulte esta respuesta para ver cómo redondear esquinas específicas en SwiftUI
fuente
Importa,
Quartzcore framework
entonces debes configurarlosetMaskToBounds
enTRUE
esta la línea muy importante.Entonces:
[[yourView layer] setCornerRadius:5.0f];
fuente
fuente
Haga esto programáticamente en obj c
También podemos hacer esto desde stoaryboard.
fuente
Si la esquina redonda no funciona en viewDidload () , es mejor escribir código en viewDidLayoutSubview ()
¡Espero que esto ayude!
fuente
También puedes usar una imagen:
fuente
set cornerRadious Property for round View
establecer el valor booleano masksToBounds para la imagen aún no se dibujará fuera del límite del radio de la esquina
fuente
Usando la extensión UIView:
Uso:
fuente
En Swift 4.2 y Xcode 10.1
fuente
ON Xcode 6 Tu intento
o
fuente