我开始迅速涉猎,并遇到一种奇怪的行为,想知道是否有人可以阐明原因。我试图将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 -> 视图和窗口体系结构-> 视图几何和坐标系-> 框架,边界和中心属性的关系中。
关于ios - UILabel位置与预期不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26973409/