2014-12-14 5 views
1

프로그래밍 방식으로 만든 스위프트에 레이블이 있습니다. 장치의 화면 크기에 관계없이 x 축 중심에이 레이블을 배치하려고합니다. 내가 어떻게 그럴 수 있니?레이블을 배치 할 X 축 가운데 찾기 Swift Xcode 6

var label = UILabel(frame: CGRectMake(0, 0, 400, 50)) 
    label.textColor = UIColor.whiteColor() 
    label.font = UIFont(name: label.font.fontName, size: 50) 
    label.textAlignment = NSTextAlignment.Center 
    label.text = "My label is cool" 
    self.view?.addSubview(label) 

답변

4

사용 UIScreen.mainScreen() bounds.width과 높이를 다음과 같은 :. X 축

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let label = UILabel(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height)) 
    label.textColor = UIColor.blackColor() 
    label.font = UIFont(name: label.font.fontName, size: 50) 
    label.textAlignment = NSTextAlignment.Center 
    label.text = "My label is cool" 
    self.view?.addSubview(label) 

} 
+0

감사! 완벽하게 작동합니다! – 24GHz

+0

당신은 환영합니다 –

0

그냥 중간 충분하지 않습니다. y 축에서 어디로 가야할지 결정해야합니다.

여기 (뷰의 중앙 즉,) x와 y의 중간에 라벨을 두는 예이다

func placeTheLabelAtCenterOfView(view: UIView, withRect rect: CGRect, andText text: String) { 
    let label = UILabel(frame: rect) 
    label.textColor = UIColor.whiteColor() 
    label.font = UIFont(name: label.font.fontName, size: 50) 
    label.textAlignment = NSTextAlignment.Center 
    label.text = text 

    // Disable automatic translation of constraints 
    label.setTranslatesAutoresizingMaskIntoConstraints(false) 

    // Create the needed constraints 
    let horizontalConstraint = NSLayoutConstraint(
     item: label, 
     attribute: NSLayoutAttribute.CenterX, 
     relatedBy: NSLayoutRelation.Equal, 
     toItem: self.view, 
     attribute: NSLayoutAttribute.CenterX, 
     multiplier: 1, 
     constant: 0 
    ) 

    let verticalConstraint = NSLayoutConstraint(
     item: label, 
     attribute: NSLayoutAttribute.CenterY, 
     relatedBy: NSLayoutRelation.Equal, 
     toItem: self.view, 
     attribute: NSLayoutAttribute.CenterY, 
     multiplier: 1, 
     constant: 0 
    ) 

    // Add the subView (before adding the constraints) 
    view.addSubview(label) 

    // Add the constraints 
    view.addConstraints([ 
     horizontalConstraint, 
     verticalConstraint, 
     ]) 
} 
관련 문제