iphone:旋转设备时调整视图大小

时间:2009-05-25 10:24:26

标签: iphone objective-c cocoa-touch

我正在尝试开发一个地理敏感的应用程序。所以,我写了 -

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    // return (interfaceOrientation == UIInterfaceOrientationPortrait);
    return YES;
}

我在屏幕上放了不同的图像,当视图发生变化时我必须调整它的大小,那么,我该怎么办?

3 个答案:

答案 0 :(得分:1)

-shouldAutorotateToInterfaceOrientation:是UIViewController上的一个方法,当设备的方向发生变化时,它会调整视图的大小。

您有两种主要方法可以调整该视图的子视图的大小:

1)您可以设置该视图子视图的autoresizingMask,以便在超视图更改大小时更改大小。如果您使用Interface Builder添加子视图,则可以从“大小”面板中直观地设置这些蒙版。

2)您可以在该视图中覆盖-layoutSubviews,并在该方法中手动调整它们的大小。

答案 1 :(得分:1)

imageViewObject.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | 
                                   UIViewAutoresizingFlexibleRightMargin | 
                                   UIViewAutoresizingFlexibleTopMargin | 
                                   UIViewAutoresizingFlexibleBottomMargin |
                                   UIViewAutoresizingFlexibleHeight |
                                   UIViewAutoresizingFlexibleWidth;

答案 2 :(得分:1)

您可以调整视图大小 - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration方法 例如:

  • (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    if((toInterfaceOrientation == UIInterfaceOrientationPortrait)||    (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)) {

    } 其他 {

    }

}