2014-02-23 70 views
0

我有一個包含主視圖的ViewController。這個主視圖包含另外兩個叫做leftView和rightView的視圖。如何在一個UIViewController中處理很多視圖

我希望在應用程序啓動時隱藏這些「輔助」視圖,我認爲最好的方法是抵消X軸。

我想通過代碼來抵消所有組織,但它不工作 - 它只在我在界面生成器中這樣做時才起作用!

我試了兩件事,都沒有工作。

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)]; 
} 

兩者 「輔助」 視圖通常結合有* leftView和* rightView在ViewController.h。

你知道如何通過代碼來完成這項工作嗎?

感謝

回答

2

最簡單辦法有兩種觀點可以在啓動隱藏的是他們的hidden屬性設置爲YES。你可以在Interface Builder中做到這一點。

如果您確實希望將視圖置於屏幕外,您當然可以這樣做。但是,如果你使用自動佈局(你幾乎可以確定),你不能通過設置它們的框架來實現,因爲自動佈局將根據約束條件重新設置它們的框架。你必須通過操縱約束來做到這一點。

+0

事實上,我有那種約束操縱這裏的一個例子:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch06p255rotationChangesInterface/ch19p593rotationChangesInterface/ViewController.m它發生在對輪換的迴應,但這不是必需的;重點在於它向您展示瞭如何交換約束條件以便以與自動佈局一致的方式更改界面。 – matt

相關問題