我应该如何对此进行子类化?

时间:2015-12-19 23:17:11

标签: ios swift class

所以我是编程新手并且有一个快速的问题。我需要子类化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))
}

2 个答案:

答案 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()方法在那里等待您上传。将您的代码放在那里,确保随时删除注释。一旦它停止变绿,它就是现场代码。

相关问题