UIViewController多个UIView。

3
这是我提供的解决方案确认: 我有两个UIView,我想在UIViewController控制下交换它们。
在IB中,我创建了3个UIView: TopView A_View B_View
然后在ViewDidLoad中添加了[
[self addSubView] A_View];

然后,在某个IBAction方法中,我做了这个:

[A_View removeFromSuperview];
[self.view addSubview:B_View];

这确实交换了这两个视图,TopView只是坐在那里。但我的第一个想法是调用[[self view] removeFromSuperView]];,然后添加B_View。 这会给我一个空屏幕?

所以我的解决方案正确吗?

先谢谢你 问候 Christian


请花些时间来格式化你的问题。目前我不知道你真正想问我们什么。 - Cyprian
2个回答

2

我认为这个看起来很好。这是一种相当普通的交换方式,只需删除一个并添加另一个即可。

您应该注意修改UIViewController的视图本身。您的解决方案是可以的。


1

那种方法很好,非常简单明了。

如果您使用的是iOS 4.0或更高版本,则还可以在UIView中使用transitionFromView:toView:duration:options:completion:方法,该方法会为您删除和添加,并提供转换动画。

[[self view] removeFromSuperview]之所以让您留下一个空白窗口,是因为您正在从它的父视图(可能是窗口对象)中删除控制器的基础视图对象(包括其子视图,例如Top_View等)。当您删除A_View并添加B_View时,您的解决方案有效,因为两者都作为子视图添加或删除到您的控制器的视图中,即self.view


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接