2010-06-24 47 views
0

(例如)我想讓我的背景圖像 - UIImageView - 與UIViewControllers視圖的大小始終相同。如何動態佈局UIViewController的UIViews

我無法弄清楚,但確定它是可能的。我正在製作一些我想重用的UI元素,並且可以根據視圖控制器視圖的大小動態地進行佈局。如何才能做到這一點?

是否有可能不必設置子視圖的框架?

下面是一個例子一些代碼,在我的UIViewController:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImage *backgroundImage = [[UIImage imageNamed:@"tabBarBackground.png"] stretchableImageWithLeftCapWidth:10.0f topCapHeight:10.0f]; 
    UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]; 

    [self.view addSubview:backgroundImageView]; 
    [backgroundImageView release]; 
} 

II知道我可以設置幀匹配UIViewControllers框架,但會發生什麼,如果此佈局以後需要改變?我應該在這個視圖控制器中實現自己的setNeedDisplay方法嗎?或者,它可以通過一些方法來完成,或許,autoresizingMask或其他?

我希望能夠改變視圖控制器視圖的大小,然後視圖控制器可以重新排列所有的東西作爲nessicary?這是正確的方法嗎?

感謝 羅斯

回答

2

起初,你應該開始以你希望它是基於父視圖大小。然後,您可以運行以下操作,這樣可以保持子視圖的大小與父級大小相同:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;