73 votos

Configuración de Radio de esquina en UIImageView no funciona

Estoy en un poco de una pérdida. He usado la propiedad de la capa de UIView para redondear las esquinas de múltiples elementos en mi aplicación. Sin embargo, este UIImageView es simplemente no la cumplen. No estoy seguro de lo que me estoy perdiendo.

El UIImageView (llamado previewImage) está contenida en una Vista de Tabla de la Célula. He tratado de establecer la cornerRadius propiedad múltiples ubicación (en la misma célula y en el controlador que crea la célula) fue 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 acerca de la forma en que las células se cargan de que me estoy perdiendo?

238voto

Evan Mulawski Puntos 28536

Es necesario configurar de la capa masksToBounds propiedad de YES :

cell.previewImage.layer.masksToBounds = YES;

Esto es porque el UIImageView de control crea un pseudo-subvista para mantener el UIImage objeto.


Nota: Para poder acceder al layer propiedad, usted necesita agregar el marco QuartzCore a su proyecto y:

 #import <QuartzCore/QuartzCore.h>
 

9voto

Daniel Dickison Puntos 15182

Creo que es necesario establecer:

 cell.previewImage.layer.masksToBounds = YES;
cell.previewImage.layer.opaque = NO;
 

6voto

Teena nath Paul Puntos 161

Esto debería funcionar

cell.previewImage.clipsToBounds = YES;

cell.previewImage.layer.cornerRadius = 20;

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X