Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 调整UIView宽度,同时保持子视图固定_Ios_Objective C_Uiview_Uiimageview_Resize - Fatal编程技术网

Ios 调整UIView宽度,同时保持子视图固定

Ios 调整UIView宽度,同时保持子视图固定,ios,objective-c,uiview,uiimageview,resize,Ios,Objective C,Uiview,Uiimageview,Resize,所以我想在这之前和之后实现这样的目标: 目前,我已按该顺序添加了此层次结构,我已使用ID标记它们,以便于遵循: UIView (1) UIImageView (2) UIView (3) UIImageView (4) 现在,顶级UIView已连接UIPangestureRecognitor。我的想法是在识别平移手势时调整包含UIImageView的第二个UIView 3的大小。换句话说,我将移动UIView 3的x位置,从而隐藏包含的UIImageView 4,以显示其

所以我想在这之前和之后实现这样的目标:

目前,我已按该顺序添加了此层次结构,我已使用ID标记它们,以便于遵循:

UIView (1)
   UIImageView (2)
   UIView (3)
     UIImageView (4)
现在,顶级UIView已连接UIPangestureRecognitor。我的想法是在识别平移手势时调整包含UIImageView的第二个UIView 3的大小。换句话说,我将移动UIView 3的x位置,从而隐藏包含的UIImageView 4,以显示其后面的图像2,从而达到所需的效果。它工作得相当好,因为它确实调整了大小,但包含的UIImageView 4没有调整大小,而是随着调整大小的UIView 3的x位置定位在0,0处而移动,或者它只是浮动在所有对象的顶部。我已经尝试过更改UIView 3的AutoResizeSubview和autoresizeMask/contentMode,但没有任何效果

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


我做错了什么?不确定这种方法是否是最好的。如果你有任何关于做之前和之后事情的更好方法的建议,请分享

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

UIView 1 UIImageView 2 UIImageView 3 要实现所需的效果,请在UIImageView 3的右侧放置一个布局约束。使用UIPangestureRecognitor修改约束。
另外,在Interface builder中将UIImageView 2和UIImageView 3的视图模式设置为左上角。这应该能奏效。也就是说,您正在修改UIImageView 3的大小以显示图像。

但这会使图像粘在UIImageView的左上角,并且在调整视图大小时会沿X移动?如果您将约束添加到UIImageView的右侧并修改约束的常数,即初始较高的值=图像视图缩小了