所以我是编程新手并且有一个快速的问题。我需要子类化UIlabel以覆盖draw rect,以便为我的文本创建一些填充。
我该怎么做呢?我看到了子类文件的答案,但我不知道放在哪里。
我应该在Xcode中创建一个全新的文件来放置这个类吗?我没有在项目的其他任何地方看到这个地方。
以下是先前答案中的示例代码
override func drawTextInRect(rect: CGRect) {
var insets: UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 5.0, bottom: 0.0, right: 5.0)
super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}
答案 0 :(得分:0)
如果你要重复使用子类,那么创建一个新的swift文件将是正确的方法。
答案 1 :(得分:0)
在Xcode中,右键单击项目并选择“新建文件”。从出现的窗口中,选择左侧的“iOS”和“Source”,然后选择右侧的Cocoa Touch Class。现在单击Next。对于“Subclass of”输入UILabel
,然后为您的新子类命名,例如“MyCustomLabel”,然后单击“下一步”,然后单击“创建”以创建文件。
Xcode将打开您的新文件进行编辑,它看起来像这样:
import UIKit
class MyCustomLabel: UILabel {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
}
如您所见,已经有一个示例drawRect()
方法在那里等待您上传。将您的代码放在那里,确保随时删除注释。一旦它停止变绿,它就是现场代码。