我有一个ViewController,它包含一个主视图。这个主视图包含另外两个名为leftView和rightView的视图。
我想在app启动时隐藏这些“辅助”视图,我认为最好的方法是偏移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:通过ViewController:
- (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)];
}
两个“辅助”视图都与ViewController.h中的* leftView和* rightView绑定。
您是否知道如何通过代码完成此工作?
由于
答案 0 :(得分:2)
在启动时隐藏两个视图的最简单方法是将其hidden
属性设置为YES。您可以在Interface Builder中执行此操作。
如果你真的希望视图位于屏幕外,你当然可以这样做。但是,如果您使用自动布局(几乎可以肯定),则无法通过设置框架来实现,因为自动布局只会根据约束将其框架再次设置回来。你必须通过操纵约束来做到这一点。