在我的一个ViewControllers中,我使用此方法旋转UIImageView
:
UIImageView *tmp = (UIImageView *)[self.view viewWithTag:1];
if(tmp)
[tmp removeFromSuperview];
// Create new label and add it back (with proper rotation)
self.arrowImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 157, 320, 320)];
self.arrowImage.image = [UIImage imageNamed:@"image"];
self.arrowImage.tag = 1; // Add back with same tag
[self.view addSubview:self.arrowImage];
self.arrowImage.transform = CGAffineTransformMakeRotation( ... );
显然,需要移除并添加子视图(即UIImageView
)以使其围绕其中心旋转。至少这是我能让它发挥作用的唯一方式。其他/更好的方式将非常感激。
但是,我的问题是:如何将UIImageView
添加为子视图,以便隐藏在之后,比如我放在它上面的UILabel
在我的故事板中?
答案 0 :(得分:9)
您可以使用:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
– insertSubview:atIndex:
取代addSubView,或使用sendSubviewToBack
:
答案 1 :(得分:1)
我认为你在寻找
[topViewAndBottomViewParentView insertSubview:topView aboveSubview:bottomView]
[topViewAndBottomViewParentView insertSubview:bottomView belowSubview:topView]
答案 2 :(得分:1)
使用insertSubview:aboveSubview:
或insertSubview:belowSubview:
或insertSubview:atIndex:
将子视图添加到给定点的子视图层次结构当然是一个很好的开始点。
然而,当你旋转它时,它的后续子视图也会自动旋转。 (取决于你如何旋转它)。
我建议考虑一种不同的方法。 1.将所有子视图(作为子视图的堆栈)添加到self.view(或任何常见的超级视图),它们应该显示在您要旋转的一个视图下方。 2.将要旋转的视图添加到公共超级视图(self.view) 3.将视图(或视图堆栈)添加到公共超级视图中。
通过这样做,三个视图堆栈(意味着视图加上它的子视图加上它的子视图......)是兄弟姐妹作为self.view的子视图。但他们重叠。添加它们的顺序将关注首先添加的视图在旋转视图下可见,添加为第三视图的视图在顶部可见,但中间的视图应该能够旋转而不会影响其他视图。