在UIImageView中居中UIActivityIndi​​catorView

时间:2012-05-28 08:05:38

标签: objective-c xcode uiimageview uiactivityindicatorview

我已经创建了UIImageView的自定义子类,并且在一种方法中,我想在加载图像时向中心添加活动指示符。我正在使用以下代码,但活动监视器位于UIImageView之外。我该怎么做才能将它完全置于UIImageView

的范围内
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

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

indicator.center = self.center;

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

3 个答案:

答案 0 :(得分:14)

center属性是 superview 的坐标空间中的视图坐标。因此,您需要在imageView的坐标空间中设置指标的坐标。正确的方法是:

indicator.center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));

答案 1 :(得分:3)

indicator.center = [self convertPoint:self.center fromView:[self superview]];

您只需转换点(UIView Class Reference):

  

@property(非原子)CGPoint中心讨论

     

中心在 superview 的坐标系中指定   并以分数衡量。

答案 2 :(得分:2)

indicator.center = imageView.center;