Je suis un peu perdu. J'ai utilisé la propriété layer de UIView pour arrondir les coins de plusieurs éléments dans mon application. Cependant, celui-ci UIImageView n'est tout simplement pas conforme. Je ne sais pas ce qui me manque.
Le UIImageView (appelé previewImage) est contenu dans une cellule de vue tableau. J'ai essayé de définir l'emplacement multiple de la propriété cornerRadius (dans la cellule elle-même et dans le contrôleur qui crée la cellule) en vain.
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.
}
Y a-t-il quelque chose qui me manque dans la façon dont les cellules sont chargées?
la source
shouldRasterize = false
?A noter également que
c'est à dire si vous avez ceci
et
ou
Ça ne marchera pas . vous devrez vous débarrasser du code aspectFit
la source
Cela devrait fonctionner
la source
clipsToBounds
est une méthode sur la dernière classe. Croyez que c'estmasksToBounds
comme ci-dessus.Je pense que vous devez définir:
la source
Dans Xcode Interface Builder, la sélection de l'attribut de dessin «Clip Subviews» pour la vue et la définition du rayon de coin dans le code
cell.previewImage.layer.cornerRadius = 20;
font le travail pour moi!Voir l'option 'Sous-vues de clip' dans IB
la source
Essayez ce morceau de code ci-dessous
la source
Essayez ce code: -
la source
Pour
imageView.contentMode = .scaleAspectFill
lecornerRadius
n'est pas appliqué si l'image est très grande, selon le matériel.Quelques tests avec des images panoramiques redimensionnées:
Les dimensions imageView où 160x100. Fait intéressant, le nouveau matériel n'est pas nécessairement plus performant.
N'hésitez pas à modifier cet article avec plus de résultats de test!
la source
la source
Réponse de Swift 4.2:
Pour que le rayon du coin fonctionne, ajoutez l'image à a
UIView
, puis vous devez définir lamasksToBounds
propriété de l'image surtrue
:Remarque: remplacez 20 par le
cornerRadius
la source
Rien des réponses précédentes ne fonctionne?
Il peut arriver que la taille de UIImageView soit supérieure à la taille de l'image. Le rayon de coin peut être bien réglé mais pas visible dans ce cas.
Vérification rapide de la taille d'UIImageView par code: (ou peut utiliser l'outil "Afficher la hiérarchie de l'interface utilisateur" dans XCode)
Dans ce scénario, vous devez vous assurer que UIImageView a le même rapport hauteur / largeur que l'image.
la source