【发布时间】:2016-02-09 19:40:03
【问题描述】:
所以我的目标是定位在屏幕中心的 UIActivityIndicator,在微调器周围有一个背景,然后在半透明度下有一个完整的背景。这张图片显示了我正在尝试创建的内容:
我对微调器等没有任何问题,但是可以正确定位所有图层。他们似乎都坐在中心下方。请看下图,了解实际情况:
代码如下:
var spinningActivityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
let container: UIView = UIView()
container.frame = self.view.frame
container.center = self.view.center
container.backgroundColor = UIColor(hue: 0/360, saturation: 0/100, brightness: 0/100, alpha: 0.4)
let loadingView: UIView = UIView()
loadingView.frame = CGRectMake(0, 0, 80, 80)
loadingView.center = self.view.center
loadingView.backgroundColor = UIColor(hue: 359/360, saturation: 67/100, brightness: 71/100, alpha: 1)
loadingView.clipsToBounds = true
loadingView.layer.cornerRadius = 40
spinningActivityIndicator.frame = CGRectMake(0, 0, 40, 40)
spinningActivityIndicator.hidesWhenStopped = true
spinningActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
spinningActivityIndicator.center = CGPointMake(loadingView.frame.size.width / 2, loadingView.frame.size.height / 2)
loadingView.addSubview(spinningActivityIndicator)
container.addSubview(loadingView)
view.addSubview(container)
spinningActivityIndicator.startAnimating()
UIApplication.sharedApplication().beginIgnoringInteractionEvents()
谁能帮我解决这个问题?谢谢!
【问题讨论】:
-
问题是你不明白frame和bounds的区别。这条线
loadingView.center = self.view.center总是说错了,因为这些值位于两个不同的坐标系中。
标签: ios swift uiview uiactivityindicatorview