0

我有一个在 Interface Builder 中设计的 UIViewController。在视图顶部附近,它有一个 UIImageView,然后是下面的一些其他视图(文本等)。这些设置为锚定到视图的顶部。

在视图加载时的代码中,我在某些情况下删除了 UIImageView,但它似乎仍然占用空间,或者下面的视图不会根据它们的 Anchor 弹到顶部。

如果上面的视图被删除,我怎样才能使下面的视图向上移动?

4

2 回答 2

1

与 Android 视图层次结构不同,iOS 视图层次结构都是在绝对坐标中开发的。当您说子视图锚定到顶部时,这意味着如果父视图的大小发生变化,您的视图将保持与屏幕顶部相同的相对位置。

为了在图像被隐藏或删除时使图像视图下方的视图向上移动,您必须自己手动排列它们以解决偏移量

于 2012-08-15T18:47:42.960 回答
1

您可以更改视图中其他元素的框架。

在 viewDidLoad 方法中,您可以使用类似的东西:

-(void)viewDidLoad{
   if(imageVisible){
         otherElements.frame = CGRectMake(....);
   }else{
         otherElements.frame = CGRectMake(....);
   }   
}

我不知道视图的结构是什么,但您可能会考虑将所有其他元素嵌套在一个视图中,这样您就可以在一个命令中更改所有元素的位置。

于 2012-08-15T18:50:13.023 回答