如何在Xcode6中使用Swift以编程方式创建UILabel
?
我已经在Xcode6中开始了一个新的“单视图应用程序”,并为这个项目选择了Swift。我有我的文件AppDelegate.swift
和ViewController.swift
,但我不确定从这里该做什么。
发布于 2014-06-06 20:29:17
在Swift 3+中以编程方式创建UILabel:
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.textAlignment = .center
label.text = "I'm a test label"
self.view.addSubview(label)
}
发布于 2016-08-29 10:28:13
以下是Swift 3的正确代码,以及用于教学目的的注释:
override func viewDidLoad()
{
super.viewDidLoad()
// CGRectMake has been deprecated - and should be let, not var
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
// you will probably want to set the font (remember to use Dynamic Type!)
label.font = UIFont.preferredFont(forTextStyle: .footnote)
// and set the text color too - remember good contrast
label.textColor = .black
// may not be necessary (e.g., if the width & height match the superview)
// if you do need to center, CGPointMake has been deprecated, so use this
label.center = CGPoint(x: 160, y: 284)
// this changed in Swift 3 (much better, no?)
label.textAlignment = .center
label.text = "I am a test label"
self.view.addSubview(label)
}
发布于 2017-10-04 11:39:21
只是为了在已经很棒的答案上添加,你可能想要在你的项目中添加多个标签,所以做所有这些(设置大小,样式等)将是一种痛苦。要解决这个问题,您可以创建一个单独的UILabel类。
import UIKit
class MyLabel: UILabel {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initializeLabel()
}
override init(frame: CGRect) {
super.init(frame: frame)
initializeLabel()
}
func initializeLabel() {
self.textAlignment = .left
self.font = UIFont(name: "Halvetica", size: 17)
self.textColor = UIColor.white
}
}
要使用它,请执行以下操作
import UIKit
class ViewController: UIViewController {
var myLabel: MyLabel()
override func viewDidLoad() {
super.viewDidLoad()
myLabel = MyLabel(frame: CGRect(x: self.view.frame.size.width / 2, y: self.view.frame.size.height / 2, width: 100, height: 20))
self.view.addSubView(myLabel)
}
}
https://stackoverflow.com/questions/24081731
复制相似问题