2015-09-20 44 views
8

W iOS 8 popover nie miał cienia. Teraz w iOS 9 istnieje bardzo ciężki i daleko sięgający cień, który może wyglądać mniej niż pożądany na czystym białym tle. Jak można usunąć ten cień, a zamiast tego dodać cienką jasnoszarą linię wokół popover? Lub przynajmniej zmniejszona lub rozjaśniona.Jak usunąć cień za popover na iOS 9?

Dzieje się tak, gdy wyświetlane są arkusze czynności, przedstawiające kontroler widoku przy użyciu metody .Popover i być może w innych kontekstach.

Popover segue: enter image description here

arkusz Działanie:

UIActionSheet(title: "Title", delegate: nil, cancelButtonTitle: "Cancel", destructiveButtonTitle: "Destroy").showInView(sender as! UIView) 

enter image description here

+0

Jeśli masz przypadek użycia, dlaczego Twój popover powinien wyglądać inaczej niż u wszystkich innych, proponuję złożenie prośby o ulepszenie z Apple. Efekt cienia jest pobierany przez UIPopoverPresentationController, ale nie masz możliwości interweniowania ani dostosowywania jego zachowania. – matt

+0

Nie ma interfejsu API dla tego, co chcesz. Stwórz własną klasę "popover" bez cienia, jeśli tego potrzebujesz. – rmaddy

+0

@ Joey, wymyśliłeś cokolwiek, nie sądzisz, że moja odpowiedź jest właściwa? –

Odpowiedz

5

Można zrobić własne tło zwyczaj popover korzystając UIPopoverBackgroundView

W initWithFrame swojej realizacji UIPopoverBackgroundView, możesz użyć a [UIColor clearColor dla cienia.

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 

     self.layer.shadowColor = [[UIColor clearColor] CGColor]; 
    } 

    return self; 
} 
+0

O dziwo, kolor wydaje się być jedyną własnością, którą możesz zmienić. Próbowałem również zmienić inne właściwości cienia, takie jak promień, krycie, itp. Bezskutecznie –