我有一个包含主视图的 ViewController。这个主视图包含另外两个 View ,称为 leftView 和 rightView。
我希望在应用启动时隐藏这些“辅助” View ,我认为最好的方法是偏移 X 轴。
我想通过代码来进行这种偏移以组织所有内容,但它不起作用 - 只有当我在 Interface Builder 中进行时它才有效!
我尝试了两件事,但都没有用。
1:通过 AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
O_GViewController *mainController = (O_GViewController *) self.window.rootViewController;
[mainController leftView].frame = CGRectMake(-211, 20, 211, 548);
[mainController rightView].frame = CGRectMake(320, 20, 320, 548);
// Override point for customization after application launch.
return YES;
}
2:通过 View Controller :
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//initialize secondary views
leftView = [[UIView alloc]initWithFrame:CGRectMake(-211, 20, 211, 548)];
rightView = [[UIView alloc]initWithFrame:CGRectMake(320, 20, 320, 548)];
}
两个“辅助” View 都与 ViewController.h 中的 *leftView 和 *rightView 绑定(bind)。
您是否知道如何通过代码来完成这项工作?
谢谢
最佳答案
在启动时隐藏这两个 View 的最简单方法是将它们的hidden
属性设置为YES。您可以在 Interface Builder 中执行此操作。
如果你真的想要将 View 放置在屏幕外,你当然可以这样做。但是如果你正在使用自动布局(你几乎可以肯定)你不能通过设置它们的框架来做到这一点,因为自动布局只会根据约束再次设置它们的框架。您必须通过操纵约束来做到这一点。
关于ios - 如何在一个 UIViewController 中处理多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972386/