Estoy un poco perdido. He usado la propiedad de capa de UIView para redondear las esquinas de múltiples elementos en mi aplicación. Sin embargo, este UIImageView simplemente no está cumpliendo. No estoy seguro de lo que me estoy perdiendo.
El UIImageView (llamado previewImage) está contenido en una celda de vista de tabla. He intentado establecer la ubicación múltiple de la propiedad cornerRadius (en la celda misma y en el controlador que crea la celda) en vano.
static NSString *CellIdentifier = @"MyTableViewCell";
MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.previewImage.layer.cornerRadius = 20; //Made it 20 to make sure it's obvious.
}
¿Hay algo sobre la forma en que se cargan las células que me falta?
iphone
ios
uiimageview
rounded-corners
MarkPowell
fuente
fuente
shouldRasterize = false
?También vale la pena señalar que
es decir, si tienes esto
y
o
Que no va a funcionar . Tendrás que deshacerte del código de AspectFit
fuente
Esto debería funcionar
fuente
clipsToBounds
es un método en la clase posterior. Cree que esmasksToBounds
como el anterior.Creo que necesitas configurar:
fuente
¡En Xcode Interface Builder, seleccionar el atributo de dibujo 'Subvistas de clip' para la vista junto con la configuración del radio de la esquina en el código
cell.previewImage.layer.cornerRadius = 20;
hace el trabajo para mí!Consulte la opción 'Subvistas de clip' en IB
fuente
Prueba esto debajo del código
fuente
Prueba este código: -
fuente
Para
imageView.contentMode = .scaleAspectFill
elcornerRadius
no se aplica si la imagen es muy grande, dependiendo del hardware.Algunas pruebas con imágenes panorámicas redimensionadas:
Las dimensiones de imageView donde 160x100. Curiosamente, el hardware más nuevo no es necesariamente más capaz.
¡Siéntase libre de editar esta publicación con más resultados de prueba!
fuente
fuente
Respuesta rápida de 4.2:
Para que funcione el radio de la esquina, agregue la imagen a ay
UIView
luego debe establecer lamasksToBounds
propiedad de la imagen entrue
:Nota: Reemplace 20 por el deseado
cornerRadius
fuente
¿Nada de las respuestas anteriores está funcionando?
Puede suceder que el tamaño de UIImageView sea mayor que el tamaño de la imagen. El radio de la esquina se puede establecer bien pero no visible en ese caso.
Comprobación rápida del tamaño de UIImageView por código: (o puede usar la herramienta "Ver jerarquía de interfaz de usuario" en XCode)
En este escenario, debe asegurarse de que UIImageView tenga la misma relación de aspecto que la imagen.
fuente