2015-12-19 101 views
0

所以我是新手編程,並有一個快速的問題。我需要繼承UIlabel以覆蓋繪製矩形,以便爲我的文本創建一些填充。我應該如何繼承這個?

我該怎麼做呢?我看到了子類文件的答案,但我不知道該把它放在哪裏。

我應該在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

是的,你應該創建一個全新的Xcode文件來放入它。你可以重新使用現有的文件,但請不要:) – TwoStraws

+0

@TwoStraws好極了!我會如何將這個應用到我的另一個班的標籤?你能告訴我一個這樣做的代碼示例,所以我可以將它添加到我的項目中。謝謝! – JakeC

回答

0

如果你打算重用子不少,創建一個新的文件迅速將去了解它的正確方法示例代碼。

+0

我打算只用這個標籤作爲一個標籤。如果我不創建另一個文件,我只是不知道如何繼承它。你會怎麼做呢?謝謝btw – JakeC

0

在Xcode中,右鍵單擊您的項目並選擇New File。在出現的窗口中,選擇左側的「iOS」和「Source」,然後選擇右側的Cocoa Touch Class。現在點擊下一步。對於「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()方法。把你的代碼放在那裏,確保在你去的時候刪除註釋。一旦它停止綠色,它是實時代碼。

+0

如果我遵循這種方法,並在另一個viewController上有一個標籤,我將如何將它應用於該特定標籤。對不起,如果這個問題真的是新手!謝謝btw – JakeC

+0

如果您使用Interface Builder,您應該選擇標籤,然後按鍵盤上的Alt + Cmd + 3以在右側顯示Identity Inspector。這裏的第一個字段是「Class」,您應該將其更改爲您的自定義標籤類的名稱,例如MyCustomLabel。如果您不使用Interface Builder,只需在代碼中寫入'MyCustomLabel(...)'而不是'UILabel(...)'。 – TwoStraws

相關問題