5

我创建了一个自定义子类,UIImageView并且在一种方法中,我想在图像加载时向中心添加一个活动指示器。我正在使用以下代码,但活动监视器位于UIImageView. 我该怎么做才能将它准确地居中UIImageView

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

indicator.autoresizingMask =
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleLeftMargin;

indicator.center = self.center;

[self addSubview:indicator];    
[indicator startAnimating];
4

3 回答 3

15

center属性是视图在其superview坐标空间中的坐标。所以你需要在imageView的坐标空间中设置你的指标坐标。正确的方法是:

indicator.center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
于 2012-05-28T08:21:04.110 回答
3
indicator.center = [self convertPoint:self.center fromView:[self superview]];

因此,您只需要转换点(UIView 类参考):

@property(nonatomic) CGPoint 中心讨论

中心在其父视图的坐标系中指定, 并以点为单位进行测量。

于 2012-05-28T08:26:18.023 回答
2

indicator.center = imageView.center;

于 2012-05-28T08:17:05.420 回答