Mi vista de inicio de sesión tiene una subvista que tiene un UIActivityViewy un UILabeldicho "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

cornerRadiuspropiedad 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
UIViewControllerla vista de una vista, no debe aplicarse en el constructor del controlador de vista, sino más bien en-viewDidLoad, después de queviewse 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.cornerRadiusa un valor. SinQuartzCoreembargo, asegúrese de incluir la biblioteca.Este truco también funciona para configurar layer.borderWidth, sin embargo, no funcionará,
layer.borderColorya que esto espera unCGColornoUIColor.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 Subviewsopció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
@IBDesignablepara 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
cornerRadiuspropiedad 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
clipsToBoundsymasksToBoundsson equivalentes . Es solo que el primero se usa conUIViewy 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
UIViewclase personalizada que también puede cambiar el color y el ancho del borde. Como es esto, tambiénIBDesignalbepuede cambiar los atributos en el generador de interfaces.fuente
fuente
Swift 4 - Uso de IBDesignable
fuente
layer.cornerRadiusregrese al estado original? (¿Cómo sabe el guión gráfico de xcode cómo configurarcornerRadiussolo después deUIViewinicializar el original )?fuente
- SwiftUI
En SwiftUI, puede usar el
cornerRadiusmodificador directamente en elViewque 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 frameworkentonces debes configurarlosetMaskToBoundsenTRUEesta 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