Как удалить «нечеткую» тень в UIPopoverController - PullRequest
5 голосов
/ 08 марта 2011

Мне не нужна тень, когда появляется представление UIPopoverController.Есть ли способ убрать этот вид тени?

Ответы [ 3 ]

12 голосов
/ 13 февраля 2013

Не прямо, но начиная с iOS 5, вы можете создать свой собственный фон всплывающего окна, используя UIPopoverBackgroundView.

См. Ответ на этот вопрос: Используя класс UIPopoverBackgroundView .Это указывает на хорошее значение.

Затем в initWithFrame вашей реализации UIPopoverBackgroundView вы можете использовать clearColor для тени.Использование смещения и радиуса не работает для меня.

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

        self.layer.shadowColor = [[UIColor clearColor] CGColor];
    }
    return self;
}
0 голосов
/ 19 декабря 2013

Вам просто нужно использовать свой пользовательский UIPopoverBackgroundView и реализовать эту функцию:

+ (BOOL)wantsDefaultContentAppearance {
    return NO;
}
0 голосов
/ 09 марта 2011

Тень является атрибутом слоя вида popover.Если бы вы могли получить доступ к слою, вы могли бы установить его радиус тени на 0.0 и смещение тени на {0.0, 0.0}.Тем не менее, похоже, что представление должно быть частным ivar контроллера popover, поэтому нет простого способа добраться до него.Более того, если вы хотите распространять это приложение через магазин приложений, использование частного ivar и изменение внешнего вида стандартных элементов пользовательского интерфейса могут привести к отклонению вашего приложения.

...