ChenYilong / iOS13AdaptationTips

iOS13 AdaptationTips
MIT License
175 stars 6 forks source link

iOS 13 UIPopoverPresentationController arrow is contained in self.view #27

Open 304164084 opened 5 years ago

304164084 commented 5 years ago

iOS 13 中,popOverVC的箭头包含在了vc.view中,导致布局错乱。 解决如下:

- (void)viewWillLayoutSubviews
{
    // 关键点在这里, 这里获取到layoutFrame,使用这个值来布局,就会让出`arrow`所占用的位置。
    CGRect layoutFrame = self.view.safeAreaLayoutGuide.layoutFrame;

    self.bgView.frame = layoutFrame;

    CGRect frame = self.view.frame;
    self.bottomView.frame = CGRectMake(0, CGRectGetHeight(frame) - 30, CGRectGetWidth(frame), 30);
    [super viewWillLayoutSubviews];
}