gpt4 book ai didi

ios - 您可以将 AutoLayout 与 UISplitViewController 结合使用吗?

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

我已经成功创建了一个在 iPhone 上运行的应用程序(trait Compact width),它使用 UISplitViewController 在屏幕左侧实现一个菜单。它广泛使用 Storyboard(有 23 个 View /单元)和 AutoLayout。我的目标是实现类似于 Gmail 应用程序和许多其他应用程序的功能。

enter image description here

当菜单在纵向模式下可见时,它占据了 80% 的屏幕,而细节/二级 View 仍然可见,但只占屏幕的 20%。我使用 viewWillLayoutSubviews & viewWillTransitionToSize 设置 splitViewController.preferredPrimaryColumnWidthFraction = 0.8;

让我感到悲伤的问题或副作用是,所有使用 AutoLayout 的辅助 View 在显示菜单时都将其所有内部 View 按钮和标签压扁并覆盖。

enter image description here

所以我的问题是:是否可以在 UISplitViewController 中使用 AutoLayout 而不会产生压扁的效果?我确定是这样,那么我错过了什么,我该怎么做才能欺骗 AutoLayout 系统不挤压布局,而是将其滑出 View ?

附录:在上面的截图中,带有蓝色导航栏的二级 View 是一个 SettingsTableViewController.m。此代码不包含任何 NSLayoutConstraints,Main.storyboard 的相关部分也不包含。按照评论中的建议:我找不到任何方法,在 Main.storyboard 的“添加新约束”弹出菜单中选择 super View ,以便能够向“ TableView ”添加“等宽”约束".

enter image description here

因此,作为替代方案,我在 SettingsTableViewController.m 中的 viewDidLoad 方法中添加了以下代码,但它没有任何效果。

self.view.superview addConstraint:[NSLayoutConstraint constraintWithItem:self.view
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.view.superview
attribute:NSLayoutAttributeWidth
multiplier:1
constant:0]];

最佳答案

不减少主视图的宽度。您应该将主视图向右移动。

关于ios - 您可以将 AutoLayout 与 UISplitViewController 结合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37869952/

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