我开始涉足 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)
有什么想法吗?
谢谢 亚力克
最佳答案
我认为你在混合坐标系。 self.titleLabel.center
是 titleContainer
中的一个点,titleContainer.center
是 [titleContainer superview]
中的一个点.
差异在 View Programming Guide 中进行了解释 -> View 和窗口架构 -> View 几何和坐标系 -> 框架、边界和中心属性的关系.
关于ios - UILabel 位置与预期不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973409/