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.

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