我有一个在 Interface Builder 中设计的 UIViewController。在视图顶部附近,它有一个 UIImageView,然后是下面的一些其他视图(文本等)。这些设置为锚定到视图的顶部。
在视图加载时的代码中,我在某些情况下删除了 UIImageView,但它似乎仍然占用空间,或者下面的视图不会根据它们的 Anchor 弹到顶部。
如果上面的视图被删除,我怎样才能使下面的视图向上移动?
我有一个在 Interface Builder 中设计的 UIViewController。在视图顶部附近,它有一个 UIImageView,然后是下面的一些其他视图(文本等)。这些设置为锚定到视图的顶部。
在视图加载时的代码中,我在某些情况下删除了 UIImageView,但它似乎仍然占用空间,或者下面的视图不会根据它们的 Anchor 弹到顶部。
如果上面的视图被删除,我怎样才能使下面的视图向上移动?
与 Android 视图层次结构不同,iOS 视图层次结构都是在绝对坐标中开发的。当您说子视图锚定到顶部时,这意味着如果父视图的大小发生变化,您的视图将保持与屏幕顶部相同的相对位置。
为了在图像被隐藏或删除时使图像视图下方的视图向上移动,您必须自己手动排列它们以解决偏移量
您可以更改视图中其他元素的框架。
在 viewDidLoad 方法中,您可以使用类似的东西:
-(void)viewDidLoad{
if(imageVisible){
otherElements.frame = CGRectMake(....);
}else{
otherElements.frame = CGRectMake(....);
}
}
我不知道视图的结构是什么,但您可能会考虑将所有其他元素嵌套在一个视图中,这样您就可以在一个命令中更改所有元素的位置。