我正在开发一款针对iOS6 / 7的应用,我已经失去了两个小时盯着故事板,试图理解为什么自动布局不能做我想做的事。
基本上,我有一个包含滚动视图的场景,在其中,我希望在右下角有一个UIIMage。因此,我为图像设置了四个约束:
XCode没有抱怨定位,所以我自信地运行我的应用程序,却发现它没有以任何方向显示。它无处可寻!
我知道要找到autolayout如何实现约束并发挥其魔力,我必须检查view.bounds rect。我检查了viewDidAppear事件,发现它的值尽可能符合预期:
图片位置为:0.000000,0.000000 106.000000x103.000000
框架当然是故事板中的实际位置,我猜是可以预期的。
这是我的故事板的屏幕截图:
有什么想法吗?
更新 更多信息: 如果我删除所有约束并运行应用程序,图像视图将以纵向显示在我视图的右下角,但是在旋转时,如预期的那样,它不会显示。
更新2: 这一切都应该落在可怕的UIScrollView和AutoLayout线程中。最后我恢复使用UIView,其中包含UIScrollView,其中包含我想要滚动的所有内容(因此在横向模式下键盘不会隐藏任何文本字段)。我希望锚定在底部的图像留在容器UIView中,它都按预期工作。
答案 0 :(得分:0)
如果你想锚定到右下角,Programmatic autoresizingMask对我来说更加一致。
它与IB略有相反,所以如果你想要在右下方锚定,你希望左边距灵活且上边距灵活
yourView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
这意味着底部边距,右边距,高度和宽度都将保持不变,使其保持在视图的右下角。