0

我正在尝试以编程方式将 UIActivityIndi​​catorView 添加并定位到我的主视图的右下角。我的应用程序可以旋转。

现在在我的 viewDidLoad 方法中,我有以下代码:

[super viewDidLoad];        
UIActivityIndicatorView *iv = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        [iv startAnimating];
        int margin = 14;
        iv.frame = CGRectMake(
                                       self.view.frame.size.width - iv.frame.size.width - margin,
                                       self.view.frame.size.height - iv.frame.size.height - margin,
                                       iv.frame.size.width,
                                       iv.frame.size.height );
    iv.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
        [self.view addSubview:iv];

当应用程序以纵向启动时,活动指示器的位置正确。一旦我旋转设备(或横向启动应用程序),活动指示器的位置就错误了。

如何解决这个问题?

4

2 回答 2

0

您还需要一个灵活的上边距,以便视图会随着主视图的高度变化而向上或向下滑动。此外,父视图需要将 autoresizesSubviews 设置为 YES(默认为 YES,因此您可能没问题)。

distanceLabel.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin);
于 2012-10-05T12:17:04.467 回答
0

在您的视图控制器上,覆盖方法shouldAutorotateToInterfaceOrientation并在方向更改时更正位置。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
于 2012-10-05T12:22:02.480 回答