UIView 宽度变化

Posted

技术标签:

【中文标题】UIView 宽度变化【英文标题】:UIView width changing 【发布时间】:2015-01-30 07:07:13 【问题描述】:

我有一个禁用“使用自动布局”的情节提要和以下布局:

查看控制器场景 视图控制器 (0,0,320,568) (W+H) 表格视图 (5,0,310,568) (W+H) 原型细胞 (0,86,310,100) () 内容视图 (0,0,310,100) () UIView (0,0,310,100) (W+H) UIImage UILabel 问题是当我关闭 Xcode 并重新打开 Xcode 时,UIView 从 (0,0,310,150) 变为 (0,0,300,257)。如果我再次关闭并重新打开 Xcode,UIView 将更改为 (0,0,290,364) 等等(即 UIView 宽度每次减少 10,高度每次增加 107)。关闭和重新打开项目具有相同的效果。

对这里发生的事情有什么想法吗?

【问题讨论】:

你使用自动布局,如果是,更新约束 您是否尝试删除您的 UIView 并添加另一个? Xcode 有时表现得很有趣。 如何确定视图框架?我的意思是您是运行应用程序来检查视图框架还是从情节提要中自行检查。 我没有使用自动布局。我尝试删除 UIView 并添加另一个,但新 UIView 的行为方式相同。我刚刚注意到高度也发生了 107 的变化。而且您不需要关闭 Xcode,只需关闭项目并重新打开项目即可。我什至没有运行该应用程序。 【参考方案1】:

所以我认为 Dani 是对的 - 有时 Xcode 的行为很有趣。我添加了一个新的临时视图控制器场景(VCS)并手动添加了表格视图和 UIView(即我没有像以前那样复制它们)。现在,当我关闭项目并重新打开它时,新 VCS 上的 UIImage 宽度和高度发生了变化,但原始 VCS 的 UIView 保持不变 - 错误将自身转移到新的临时 VCS 上。

好消息是我删除了新的临时 VCS,现在当我关闭并重新打开项目时,原始 VCS 保持不变。

【讨论】:

以上是关于UIView 宽度变化的主要内容,如果未能解决你的问题,请参考以下文章

如何对 UIView 上的自动布局约束引起的大小变化做出反应?

Swift UIView 自动布局和约束

UIView AutoLayout WrapContent,UIview 实现自动包裹

从自定义 UIView 类设置视图宽度约束不更新帧

如何将自定义子视图的宽度设置为没有宽度限制的父 UIView 的 1/3?

动画 UIView 宽度不起作用