2014-11-17 68 views
2

我開始嘗試了一下,發現了一個奇怪的行爲,並想知道是否有人可以闡明原因。我試圖添加一個UILabel到一個UIView並將其放置在UIView的中心。理論上這可以通過以下來實現。UILabel位置與預期不同

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

我認爲你是混合座標系。 self.titleLabel.centertitleContainer裏面的一個點,titleContainer.center[titleContainer superview]裏面的一個點。 >查看和窗口架構 - -

的差異在View Programming Guide解釋>視圖幾何和座標系 - >框架,邊界的關係,和中心物業

+0

感謝您的回覆。我想讓標籤坐在'[titleContainer superview]'的中心點,這樣肯定有效嗎?我道歉我真的沒有看到區別? – NinjaArekku

+0

我添加了一個試圖解釋差異的鏈接。 – Mats