如何获得视图的中心

时间:2015-11-16 21:49:02

标签: swift uiview uiviewcontroller

我试图通过使用下面的代码获取视图的中心,正在使用的类来自DTIActivityIndicatorView,它将自定义活动指示符添加到视图中。

var midX = CGRectGetMidX(self.view.bounds)
var midY = CGRectGetMidY(self.view.bounds)

let topStoriesActivityIndicator: DTIActivityIndicatorView = DTIActivityIndicatorView(frame: CGRect(x: midX, y: midY, width:80.0, height:80.0))

但上面的代码给出了以下结果,其中活动指标不在中间。

screenshot

7 个答案:

答案 0 :(得分:11)

Swift 3

以下代码代表Screen的中心:

let frameSize: CGPoint = CGPoint(x: UIScreen.main.bounds.size.width*0.5,y: UIScreen.main.bounds.size.height*0.5)

希望这有帮助!

答案 1 :(得分:11)

Swift 4扩展程序:

titleLabel.textAlignment = .center

答案 2 :(得分:9)

界限可能与视图大小的显示方式不同。尝试使用框架,如果它不起作用,请尝试使用边界。

var midX = CGRectGetMidX(self.view.bounds)
var midY = CGRectGetMidY(self.view.bounds)

此外,由于您将视图定位在中心,然后添加宽度和高度,它也会显示为关闭。你应该像这样设置框架

let topStoriesActivityIndicator: DTIActivityIndicatorView = DTIActivityIndicatorView(frame: CGRect(x: midX - 80.0, y: midY - 80.0, width:80.0, height:80.0))

答案 3 :(得分:7)

斯威夫特3:

4.3.0 smtp; 451 4.3.0 This message could not be delivered due to a recipient error. Please try again later

答案 4 :(得分:4)

试试这个: -

var midY = self.view.frame.height / 2
var midX = self.view.frame.width / 2

答案 5 :(得分:0)

怎么样?

let width = 80
let height = 80

topStoriesActivityIndicator: DTIActivityIndicatorView = DTIActivityIndicatorView(frame: CGRect(x: view.bounds.midX - ( width * 0.5), y: view.bounds.midY - ( height * 0.5) , width: width, height: height))

这也许可以帮助解决问题

答案 6 :(得分:0)

快捷键5

let frameSize: CGPoint = CGPoint(x:self.view.bounds.midX, y:self.view.bounds.midY)

let frameSize: CGPoint = CGPoint(x:yourView.bounds.midX, y:yourView.bounds.midY)

 let frameSize: CGPoint = self.view.center