自定义 Activity 指标未居中

Custom Activity Indicator Not Centered

我正在使用来自 github 的 mownier 的 MONActivityIndi​​cator:https://github.com/mownier/MONActivityIndicatorView

我是这样设置指标的:

var activity = MONActivityIndicatorView()

activity.numberOfCircles = 5
activity.radius = 10
activity.internalSpacing = 3
activity.duration = 0.5
activity.delay = 0.3
activity.center = self.view.center

self.view.addSubview(activity)

activity.startAnimating()  

问题是指示器没有出现在中心,而是出现在视图的右上角,这是为什么?

您可以将约束添加到 activity 视图中,并使其居中,就像在演示项目中所做的那样。

这是 swift 中的函数:

func placeAtTheCenterWithView(view: UIView) {

    self.view.addConstraint(NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0))

    self.view.addConstraint(NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1.0, constant: 0))
}

从代码中删除这一行:

activity.center = self.view.center

您的最终代码将是:

var activity = MONActivityIndicatorView()

activity.numberOfCircles = 5
activity.radius = 10
activity.internalSpacing = 3
activity.duration = 0.5
activity.delay = 0.3
self.view.addSubview(activity)
self.placeAtTheCenterWithView(activity)  //center it with constraint.
activity.startAnimating()

另一种使其居中的方法是在主线程中这样做:

dispatch_async(dispatch_get_main_queue()) {
    activity.center = self.view.center
}