【问题标题】:Resizing UIView width while keeping subview anchored在保持子视图锚定的同时调整 UIView 宽度
【发布时间】:2014-11-09 18:52:17
【问题描述】:

所以我想在前后实现这样的事情:

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,但没有任何效果。

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

我做错了什么?不确定这种方法是否是最好的。如果您对更好的前后处理方式有任何建议,请分享!

【问题讨论】:

    标签: ios objective-c uiview uiimageview resize


    【解决方案1】:

    我会将您当前的结构更改为:

    • UI 视图 (1)
      • UIImageView (2)
      • UIImageView (3)

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

    【讨论】:

    • 但这会使图像粘在 UIImageView 的“左上”侧,并且在调整视图大小时会沿 X 移动?
    • 如果将约束添加到 UIImageView 的右侧并修改约束的常量(即最初较高的值 = 缩小的图像视图)则不会
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2012-05-20
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多