У кастомного UIPopover странная тень на iOS 6
Я использую UIPopoverBackgroundView
класс для отображения пользовательских UIPopover
,
Вот эта вещь. На iOS 5 всплывающее окно отображается без тени от него. Однако в iOS 6 поповер отбрасывает очень странную тень, которая не совсем подходит поповеру:
Могу ли я в любом случае контролировать это поведение, чтобы добиться согласованного взгляда на обе версии?
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);
Редактировать: Другими словами, тень правильная, просто не в том месте.