ios - 在 UIModalPresentationPageSheet 中呈现 UITableViewController 时自动布局中断

标签 ios objective-c

编辑:我已经设法将其归咎于罪魁祸首:UIModalPresentationPageSheet(与 UIModalPresentationFormSheet 相同)

如果我删除它并制作一个简单的 UIModal,自动布局不会中断......但是,我仍然没有设法找到解决方法,但我猜 UIModalPresentationPageSheet 必须重新计算表格的宽度并打破约束。

我尝试在 ViewDidLoad 和 ViewDidAppear 之后更新约束...但无济于事。

我一直在试图找出为什么我的自动布局会中断。 我最初的布局比较复杂,但我将其分解为最简单的表达,但它仍然失败。

这是我对单元格的初始设置:

enter image description here enter image description here

以下是标签的约束:

enter image description here

以下是 UITextView 的约束:

enter image description here

最后这是一个荒谬的结果……UILabel 消失了……或者看起来是这样,因为如果我记录它是 CGSize……我得到荒谬的高度和宽度。

enter image description here

有什么想法吗?

最佳答案

UI 中的 UITextView 的宽度设置为 722,如果 iPad 尺寸类中的标签缺少约束,该宽度将生效。

您是否有可能使用不反射(reflect)标签约束的常规宽度常规高度的尺寸等级?我会检查您是否为这个尺寸等级安装了所有约束,因为在我看来标签不存在于 iPad 尺寸等级中。

在不同设备的预览窗口中查看它的外观。这应该显示哪些布局有效,哪些无效。

编辑:从讨论中找到的解决方案

有趣的是,我想知道在页面或表单的模态呈现中大小类是否不同?当您使用弹出窗口时,宽度大小类会更改为紧凑。尝试使用模态 FullScreen 看看是否是问题所在?还要查看调试器中的 [self.traitCollection] 以查看它使用的大小类。

我发现对于大多数开发,最好使用大小类 Any/Any,然后添加异常(exception)。

关于ios - 在 UIModalPresentationPageSheet 中呈现 UITableViewController 时自动布局中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28962175/

相关文章:

ios - 带有重定向的通用链接在 iOS 中不起作用

ios - iPad 2 与 iPad 3 手动定位的项目有变化吗?

ios - iOS模拟器上的软件Keyboard toggle可以一直打开吗?

iphone - 如何从Game Center获取本地玩家分数

ios - 在选择时从自定义 UITableViewCell 中检索对象

ios - iOS(Xamarin)中带有图像和文本的UILabel

ios - 创建NSDictionary dictionaryWithObjectsAndKeys时发生无声崩溃

ios - 如何将 indexPath.row 保存为全局整数?

iphone - 更改状态栏高度时更改 View 框架?

ios - 在ios中保持view controller的第一个状态