Comment supprimer l'ombre scope "floue" dans le UIPopoverController

Je ne veux pas d'ombre scope lorsque la vue de UIPopoverController apparaît. Y a-t-il un moyen de supprimer ce look d'ombre scope?

Pas simple, mais depuis iOS 5, vous pouvez créer votre propre arrière-plan popover personnalisé en utilisant UIPopoverBackgroundView.

Voir la réponse à cette question: Utilisation de la class UIPopoverBackgroundView . Cela montre un bon tuto.

Ensuite, dans le cadre initWithFrame de votre implémentation UIPopoverBackgroundView, vous pouvez utiliser un clearColor pour l'ombre scope. L'utilisation de l'offset et du rayon n'a pas fonctionné pour moi.

- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.layer.shadowColor = [[UIColor clearColor] CGColor]; } return self; } 

L'ombre est un atsortingbut de la couche de la vue popover. Si vous pouviez avoir access à la couche, vous pouvez définir son rayon d'ombre à 0,0 et son décalage d'ombre à {0,0, 0,0}. Cependant, il semble que la vue doit être un ivar privé du controller popover, il n'y a donc pas de moyen facile d'y accéder. De plus, si vous cherchez à dissortingbuer cette application via l'App Store, l'utilisation d'un ivar privé et la modification de l'aspect des éléments d'interface user standard sont susceptibles d'entraîner le rejet de votre application.

Vous devez juste utiliser votre UIPopoverBackgroundView personnalisé et implémenter cette fonction:

 + (BOOL)wantsDefaultContentAppearance { return NO; }