UIModalPresentationPopover нижние углы не должны показывать цвет фона
Возникли проблемы с контроллером поповера. Контроллер представления представлен как модальный поповер. Стрелка к точке привязки должна быть красной, поэтому я установил цвет фона:
vc.modalPresentationStyle = UIModalPresentationPopover;
vc.popoverPresentationController.backgroundColor = [UIColor primaryColor];
Нижние углы поповера красного цвета от фона.
Редактировать 11/06
Когда vc установлен в режим модального всплывающего окна, углы vc автоматически округляются поповером и экспонируется фон поповера. Но округление, которое это делает к vc, не соответствует округлению поповера.
Это неожиданно Я не могу найти ничего, что разоблачает, как установить угловой радиус. Я попытался установить для параметра cornerRadius представления контроллера view и collectionView значение 0, но углы остались прежними, а popoverPresentationController по-прежнему отображается красным. Любые идеи, как это исправить?
1 ответ
Завершено создание подкласса UIPopoverBackgroundView для позиционирования и рисования стрелки и присвоения его класса popoverPresentationController.popoverBackgroundViewClass.
В подклассе UIPopoverBackgroundView
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView* subview in self.superview.subviews)
{
if (subview != self && subview.layer.cornerRadius > 0)
{
subview.layer.cornerRadius = self.cornerRadius; // cornerRadius - your custom property
subview.clipsToBounds = YES;
}
}
}
Может быть, ты найдешь место получше вместо layoutSubviews.