如何以编程方式将UIActivityIndi​​catorView添加到右下角的视图中

时间:2012-10-05 11:31:36

标签: objective-c uiview positioning ios6

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

现在我的viewDidLoad-method我有这段代码:

[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];

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

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您还需要一个灵活的上边距,以便在主视图的高度发生变化时视图会向上或向下滑动。此外,父视图需要autoresizesSubviews设置为YES(这是默认的YES,所以你可能没问题。)

distanceLabel.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin);

答案 1 :(得分:0)

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;