2013-07-11 71 views
0

建議在layoutSubviews中設置UILabelUIFont。我正在繼承UITableViewCell。如果需要,我們使用layoutSubview來調整UIView框架,所以我不確定我是否應該使用它。在UITableViewCell子類中爲UILabel設置UIFont

另外,是否有像viewDidLoad這樣的方法,它只會被調用一次。

我累了設置initWithCoder的字體,但IBOutletUILabelinitWithCoder中爲空。

我可以在cellForRowAtIndexPath中設置UILabel文本,所以連接到這個自定義UILabel是正確的。

注意: - 單元格從UIStoryboard中的UIViewController初始化。

回答

1

您應該只在layoutSubviews中佈置您的視圖。 UITableViewCellUIView子類,所以你可以在這裏設置您的屬性:

- (void) awakeFromNib { 
    self.myLabel.text = @"my text";  
} 
+0

感謝。在編輯UILable的任何屬性(如文本或字體)之前,是否需要調用[super awakeFromNib]? – weber67

+0

好問題。在這種情況下,你不需要叫超級。你可以在這裏看到一些示例代碼,雖然有些東西是Mac特定的:https://developer.apple.com/library/mac/#documentation/cocoa/Reference/ApplicationKit/Protocols/NSNibAwaking_Protocol/Reference/Reference.html –

+0

謝謝,url幫助我理解了我的查詢。如果父類是UIView或NSObject,則不需要調用super。對於其他人,如果父類沒有實現 - (void)awakeFromNib,它會拋出一個異常。爲了避免這個問題,可以使用instancesRespondToSelector:來執行檢查。 – weber67