iOS 7 addSubview 为我的 UIView 添加了额外的长度,这是为啥呢?
Posted
技术标签:
【中文标题】iOS 7 addSubview 为我的 UIView 添加了额外的长度,这是为啥呢?【英文标题】:iOS 7 addSubview adds additional length to my UIView, why is this?iOS 7 addSubview 为我的 UIView 添加了额外的长度,这是为什么呢? 【发布时间】:2013-12-27 01:54:38 【问题描述】:在我的应用程序中,我在一个窗口中有一个视图控制器,可以在需要时添加一些子视图。所有子视图都使用 IBActions 和以下代码显示:
[self.view addSubview:myViewIWantToAdd];
除了一个视图之外,所有这些都以正确的尺寸和位置显示。该方法似乎在试图显示的视图的长度上增加了 20 个像素,以产生以下效果:
http://i.stack.imgur.com/th11f.png
您可以从图像中看到,底部字母拼贴在屏幕边界下方额外延伸了 20 像素。我可以通过将视图的大小从高度 568 减小到 548 来修复它。但是这样做会产生一种特殊的效果。当 UIView 的高度设置为 548 时,可触摸(用户交互)区域也减少了 20 个像素。这意味着用户不能选择底部字母拼贴的下半部分。在这个阶段我很迷茫,因为我正在实现 UIView,就像应用程序中的任何其他 UIView 一样,根本没有任何问题。我该如何解决这个问题/我做错了什么?
附:我在 ios 6 中从未遇到过这个问题,我相信这与 iOS 7 有关。
【问题讨论】:
【参考方案1】:在 ios 7 中,您的窗口位于状态栏下方,因此您的窗口高度会高出 20 点。
您可以调整子视图的框架并设置适当的视图 autoresizingMask 属性来解决它。
如果您想让您的应用符合 ios7 的外观,请参阅link
【讨论】:
【参考方案2】:请在您的设备上进行相同的测试。
【讨论】:
它发生在模拟器和真实设备上。以上是关于iOS 7 addSubview 为我的 UIView 添加了额外的长度,这是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章
如何在一行代码中将多个子视图添加到我的 iOS 视图中? (也许通过“monkeypatching”一个 `addSubviews` 实例方法到 UIView?)
iOS - 在 UIScrollView 上使用 addSubView