我一直在尋找最佳實踐和創造自定義,可重用視圖組件的東西。到目前爲止,它看起來像一個自定義的UIView子類是要走的路。用自定義init分類UIView - 這是理智的嗎?
在這種情況下,我需要的是可以方便地前往標籤的固定大小的視圖,以及便利的初始化將是巨大的。我可以標記的標籤和使用恆定的,但它給這個(樣板像UIKit的進口刪除)似乎沒有必要(與ARC):
// .h file
@interface MyView : UIView
@property (nonatomic, weak) IBOutlet UILabel *label;
+ (id)withText:(NSString *)text;
@end
// .m file
@implementation MyView
+ (id)withText:(NSString *)text {
MyView *view = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class])
owner:nil
options:nil] objectAtIndex:0];
view.label.text = text;
return view;
}
@end
(編輯:改爲類方法我的擔憂仍然不變,但它總體上不太可疑)
我的MyView.xib文件唯一的頂層元素(一個UIView)有一個自定義類設置爲MyView,並且出口連接到FileOwner。
而且這個工作。完美。它能夠在我使用它的任何地方正確呈現,沒有例外,沒有裁剪,也沒有任何有趣的業務,我可以看到。
到目前爲止。我有點擔心:
- 我還沒有在任何地方看過這種技術。當然,我只是在尋找一個相對較短的時間(幾個小時,被動地)。
- 我沒有做任何initWithFrame的推薦壓倒一切的:/編碼器:等
- 我只是在一個非常有限的領域使用這一權利,現在,所以它是無處附近的情況以及測試喜歡外出的角度來看,繪圖性能是未知的,我還沒有徹底的內存泄漏檢測等
- 我幾乎可以肯定,我失去了一些東西。我很可能會在使用它的時候很快找到它,但我可能找不到它們。
有人有更多的UIView經驗比我有腦海中的一點點?這是一個好主意嗎?一個可怕的「omg wtf你在想什麼」主意?有驚喜等着我嗎?有什麼我應該閱讀如何創建這樣的簡單的自定義視圖?
在第一行的「自我」的三種用途,其實,可怕的,特別是因爲你* *的改變自我,不釋放舊的。更不用說使用「文件所有者」的筆尖中的任何內容都是令人驚訝的。作爲類方法可能更有意義。 –
哈,這是一個很好的觀點 - 特別是業主:案例。實際上,我想我現在會改變它。 – Groxx
更改 - 謝謝:)這是一個漫長的一天,我可能不會完全直接思考。 – Groxx