我开始迅速涉猎,并遇到一种奇怪的行为,想知道是否有人可以阐明原因。我试图将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.centertitleContainer内的一个点,titleContainer.center[titleContainer superview]内的一个点。

差异在 View Programming Guide -> 视图和窗口体系结构-> 视图几何和坐标系-> 框架,边界和中心属性的关系中。

关于ios - UILabel位置与预期不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26973409/

10-11 01:17