J'ai cherché mais je n'ai pas trouvé la raison de ce comportement.
J'ai un bouton UIButton dont je définis l'image. Voici comment le bouton doit apparaître. Notez qu'il s'agit simplement d'un photoshop du design prévu pour le bouton :
Il s'agit essentiellement d'un bouton UIButton personnalisé de forme carrée, avec une bordure blanche et une petite ombre qui l'entoure. Dans le coin supérieur droit, il y a une marque "X", qui sera ajoutée par programme en tant que sous-vue.
Voici une capture d'écran du bouton dans l'application actuelle. À ce stade, je n'ai ajouté qu'une ombre et la marque X en tant que sous-vue :
Cependant, lorsque j'essaie d'ajouter la bordure blanche, voici ce que cela donne :
Il semble que la bordure blanche apparaisse au-dessus de la sous-couche de la marque X. Je ne sais pas pourquoi.
Voici le code que j'utilise :
// selectedPhotoButton is the UIButton with UIImage set earlier
// At this point, I am adding in the shadow
[selectedPhotoButton layer] setShadowColor:[[UIColor lightGrayColor] CGColor]];
[[selectedPhotoButton layer] setShadowOffset: CGSizeMake(1.0f, 1.0f)];
[[selectedPhotoButton layer] setShadowRadius:0.5f];
[[selectedPhotoButton layer] setShadowOpacity:1.0f];
// Now add the white border
[[selectedPhotoButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
[[selectedPhotoButton layer] setBorderWidth:2.0];
// Now add the X mark subview
UIImage *deleteImage = [UIImage imageNamed:@"nocheck_photo.png"];
UIImageView *deleteMark = [[UIImageView alloc] initWithFrame:CGRectMake(53, -5, 27, 27)];
deleteMark.contentMode = UIViewContentModeScaleAspectFit;
[deleteMark setImage:deleteImage];
[selectedPhotoButton addSubview:deleteMark];
[deleteMark release];
Je ne comprends pas pourquoi la bordure apparaît au-dessus de la sous-vue deleteMark. Existe-t-il un moyen d'obtenir l'effet escompté ?
Gracias.