我开始涉足swift并遇到一种奇怪的行为,并想知道是否有人可以阐明原因。我试图将UILabel添加到UIView并将其放置在UIView的中心。从理论上讲,这可以通过以下方式实现。
self.titleContainer = UIView(frame: CGRect(x: self.view.bounds.origin.x, y: self.view.bounds.origin.y
+ 20.0, width: self.view.bounds.width, height: (self.view.bounds.height * cSixth) - 20.0))
self.titleContainer.backgroundColor = UIColor.blackColor()
self.view.addSubview(titleContainer)
self.titleLabel = UILabel()
self.titleLabel.text = "Naughts and Crosses"
self.titleLabel.textColor = UIColor.whiteColor()
self.titleLabel.font = UIFont(name: "Helvetica", size: 10)
self.titleLabel.sizeToFit()
self.titleLabel.center = titleContainer.center
titleContainer.addSubview(self.titleLabel)
然而,这似乎没有占据上边界。但是下一个代码块工作并将标签放在中心位置。
self.titleContainer = UIView(frame: CGRect(x: self.view.bounds.origin.x, y: self.view.bounds.origin.y
+ 20.0, width: self.view.bounds.width, height: (self.view.bounds.height * cSixth) - 20.0))
self.titleContainer.backgroundColor = UIColor.blackColor()
self.view.addSubview(titleContainer)
self.titleLabel = UILabel()
self.titleLabel.text = "Naughts and Crosses"
self.titleLabel.textColor = UIColor.whiteColor()
self.titleLabel.font = UIFont(name: "Helvetica", size: 10)
self.titleLabel.sizeToFit()
self.titleLabel.center = CGPointMake(titleContainer.bounds.midX, titleContainer.bounds.midY)
titleContainer.addSubview(self.titleLabel)
有什么想法吗?
由于 艾力
答案 0 :(得分:0)
我认为你正在混合坐标系。 self.titleLabel.center
是titleContainer
内的一个点,titleContainer.center
是[titleContainer superview]
内的一个点。
差异在 View Programming Guide - >中解释。 视图和窗口架构 - > 查看几何和坐标系 - > 框架,边界和中心属性的关系。