我正在尝试以编程方式在我的主视图的右下角添加和定位UIActivityIndicatorView。我的应用可以旋转。
现在我的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的定位就错了。
如何解决这个问题?
答案 0 :(得分:0)
您还需要一个灵活的上边距,以便在主视图的高度发生变化时视图会向上或向下滑动。此外,父视图需要autoresizesSubviews设置为YES(这是默认的YES,所以你可能没问题。)
distanceLabel.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin);
答案 1 :(得分:0)
在视图控制器上,覆盖方法 shouldAutorotateToInterfaceOrientation ,并在方向更改时更正位置。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;