ios开发怎么获取uiview自动变化后的宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发怎么获取uiview自动变化后的宽度相关的知识,希望对你有一定的参考价值。

参考技术A UIView *v1 = [[UIView alloc] init];
  [self.view addSubview:v1];
  UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
  v2.backgroundColor = [UIColor redColor];
  [v1 addSubview:v2];本回答被提问者采纳

UIView 宽度变化

【中文标题】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 保持不变。

【讨论】:

以上是关于ios开发怎么获取uiview自动变化后的宽度的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 上未返回正确的自动布局宽度

iOS自动布局两个UIView具有相等的宽度

ios uiview 自动展开尺寸

iOS 8 自定义键盘自动布局键

IOS 8 图像缩放和自动布局

UIView 宽度变化