首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >何时布局UIViewControllers视图的子视图?

何时布局UIViewControllers视图的子视图?
EN

Stack Overflow用户
提问于 2019-08-08 07:45:43
回答 1查看 85关注 0票数 0

在我的UIViewController类中,我创建一个名为safeAreaViewUIView,并将其作为子视图添加到UIViewControllers view属性中。我这样做是为了让safeAreaView占用UIViewControllers view属性的整个安全区:

代码语言:javascript
复制
- (void) viewDidLoad
{
    [self setToolbarWithColor: self.mainToolbarColor animated:NO];

    self.tapGestureRecognizer.delegate = self;
    self.view.clipsToBounds = YES;
    self.view.backgroundColor = [UIColor lightGrayColor];

    self.safeAreaView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    self.safeAreaView.clipsToBounds = YES;
    self.safeAreaView.delegate = self;
    self.safeAreaView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview: self.safeAreaView];

    [self.safeAreaView.leadingAnchor constraintEqualToAnchor: self.view.safeAreaLayoutGuide.leadingAnchor].active = YES;
    [self.safeAreaView.trailingAnchor constraintEqualToAnchor: self.view.safeAreaLayoutGuide.trailingAnchor].active = YES;
    [self.safeAreaView.topAnchor constraintEqualToAnchor: self.view.safeAreaLayoutGuide.topAnchor].active = YES;
    [self.safeAreaView.bottomAnchor constraintEqualToAnchor: self.view.safeAreaLayoutGuide.bottomAnchor].active = YES;

    [self.safeAreaView loadSubviews];
}

这很好,但我的问题是,在UIViewControllers初始化周期之后的某个时候,safeAreaView更新以说明statusbar (它的y位置上升了20,大小减少了20)。

我需要在safeAreaView上布置一些子视图,而我不知道合适的时间?如果我像上面那样附加子视图,它们的高度是错误的。我不能在子视图上使用一些自动布局功能,因为我需要做一些特定的事情。我也尝试过在viewWillAppear中执行上面的代码,但没有成功。

想知道有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-09 08:22:23

您可以在您的- (void)layoutSubviews类上重写safeAreaView

代码语言:javascript
复制
- (void)layoutSubviews {
    [super layoutSubviews];

    // Manual frame adjustment for non-autolayout participating subviews
    // ...
}

另一种选择是重写safeAreaView的类框架设置器,因此每次视图的框架发生变化时,您将有机会根据需要手动设置任何子视图框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57407638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档