gpt4 book ai didi

ios - 在 Objective C 中使用安全区域

转载 作者:行者123 更新时间:2023-11-29 00:08:56 24 4
gpt4 key购买 nike

我正在努力迁移我的应用程序,以便我可以在 iPhoneX 上使用它而无需缩放。目前我使用以下代码布局 subview :

CGRect frame = self.view.bounds;
frame.size.height = 295;
frame.origin.y = 20;

在您添加凹口之前,这一切都可以正常工作。我没有看到一个明确的方法来找出应该设置什么frame.origin.y,而不只是硬编码..我想避免。

我想做的是这个 - frame.origin.y = 20 + self.view.safeAreaInserts.top

但这没有任何作用。

谢谢!

最佳答案

也许 safeAreaInsets 在代码运行后被更改(例如,如果您尝试在 viewDidLoad 中执行布局)。您需要重写 safeAreaInsetsDidChange 以在更改时收到通知。

请注意,safeAreaInsetsDidChangeUIView 的方法,而不是 UIViewController,因此您需要创建并使用 的子类>UIView 来重写该方法。像这样覆盖它可能就足够了:

override func safeAreaInsetsDidChange() {
super.safeAreaInsetsDidChange()
setNeedsLayout()
}

然后你可以在layoutSubviews中设置 subview 的框架。

或者您可以只使用约束而不是直接设置框架,让自动布局为您处理这一切。

关于ios - 在 Objective C 中使用安全区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com