如何在一个UIViewController中处理许多视图

时间:2014-02-23 18:16:58

标签: ios cocoa-touch uiviewcontroller uikit

我有一个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绑定。

您是否知道如何通过代码完成此工作?

由于

1 个答案:

答案 0 :(得分:2)

在启动时隐藏两个视图的最简单方法是将其hidden属性设置为YES。您可以在Interface Builder中执行此操作。

如果你真的希望视图位于屏幕外,你当然可以这样做。但是,如果您使用自动布局(几乎可以肯定),则无法通过设置框架来实现,因为自动布局只会根据约束将其框架再次设置回来。你必须通过操纵约束来做到这一点。