在保持子视图锚定的同时调整UIView宽度

时间:2014-11-09 18:52:18

标签: ios objective-c uiview uiimageview resize

所以我想在事前和事后做到这样的事情:

http://demosthenes.info/blog/819/A-Before-And-After-Image-Comparison-Slide-Control-in-HTML5

我目前拥有此层次结构(按此顺序添加,我已使用ID标记它们,以便更容易理解):

UIView (1)
   UIImageView (2)
   UIView (3)
     UIImageView (4)

现在顶级UIView附加了UIPanGestureRecognizer。我的想法是在识别出平移手势时调整包含UIImageView的第二个UIView(3)的大小。换句话说,我将移动UIView(3)的x位置,因此隐藏包含UIImageView(4)以显示其后面的图像(2),从而实现所需的效果。它运行得相当好,因为它确实调整了大小但是包含的UIImageView(4)没有调整大小,而是随着调整大小的UIView(3)的x位置移动(锚定在(0,0))或它只是漂浮在一切之上。我已经尝试更改UIView(3)和autoresizeMask / contentMode的autoresizeSubviews,但没有真正有效。

换句话说,如何在不移动或调整子视图大小的情况下调整容器大小?

我做错了什么?不确定这种方法是否最好。如果您有更好的方法来做前后事,请分享!

1 个答案:

答案 0 :(得分:0)

我会改变你目前的结构:

  • UIView(1)
    • UIImageView(2)
    • UIImageView(3)

要实现您想要的效果,请将布局约束附加到UIImageView(3)的右侧。使用UIPanGestureRecognizer修改约束。 另外,在界面构建器中将UIImageView(2)和UIImageView(3)的视图模式设置为“左上角”。这应该够了吧。那就是你要修改UIImageView(3)的大小以显示图像。