2010-06-24 44 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;