У кастомного UIPopover странная тень на iOS 6

Я использую UIPopoverBackgroundView класс для отображения пользовательских UIPopover,

Вот эта вещь. На iOS 5 всплывающее окно отображается без тени от него. Однако в iOS 6 поповер отбрасывает очень странную тень, которая не совсем подходит поповеру:

ios 5 popover

ios 6 popover

Могу ли я в любом случае контролировать это поведение, чтобы добиться согласованного взгляда на обе версии?

2 ответа

Решение

Чтобы удалить тень на iOS 6 и добавить собственную тень в ваш поповер:

1) удалить тень, переопределив layoutSubviews

- (void)layoutSubviews {
    // remove shadow (iOS 6)
}

2) Добавьте теневое свойство в ваше представление BG

_borderView.layer.shadowColor = [UIColor blackColor].CGColor;
_borderView.layer.shadowOpacity = 1.f;
_borderView.layer.shadowRadius = 15;
_borderView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);

_borderView.layer.shouldRasterize = YES;

Вы можете вручную установить смещение тени на слое UIPopoverBackgroundView:

self.layer.shadowOffset = CGSizeMake(_leftOffset, 0);

Редактировать: Другими словами, тень правильная, просто не в том месте.

Другие вопросы по тегам