设置frame.origin.x view.frame.width不会完全隐藏屏幕外的视图

时间:2015-12-19 21:39:23

标签: ios swift uiview swift2 frame

我想将LoginView设置在屏幕右侧,这样它就不可见了。 我已经使用过这段代码并在iPhone 4S上进行了测试

LoginView.view.frame.origin.x = LoginView.view.frame.width

但结果并非我的预期。

结果

enter image description here

我尝试将LoginView.view.frame.width打印到控制台,它给了我320.0,但如果我想将视图完全移出窗口,我必须将LoginView.view.frame.width设置为328.0

这8点加分是什么?

2 个答案:

答案 0 :(得分:0)

来自@TwoStraws的评论解决了我的问题。

创建约束时,你必须取消选择Constrain to margin,所以要全屏显示它应该是这样的

enter image description here

答案 1 :(得分:0)

有几个原因可能发生:

1)图像视图的内容可能与其边界重叠。是否启用了剪辑子视图?

2)您正在强制图像视图为特定宽度。

3)您已将图像视图大小本身设为其内容。

4)你的约束试图匹配视图的边距,而不是视图本身。

在这种特殊情况下 - 经过一些试验和错误! - 我们发现正确的解决方案是4 。希望这个答案对将来讨论这个问题的其他人有用。