你並不需要一個代理關係簡單地設置一對文本標籤。如果你想要做一個UIView
子類有兩個標籤,一個視圖,並簡單地這一觀點添加到您的視圖控制器,然後在視圖子類中,正確的,將類似於UILabel setText:
方法的方法。它只需要兩個參數。
所以,如果mainLabel
和subLabel
對你的UIView
子類的.m
文件UILabel
屬性,你可以做這樣的事情:
在UIView
子類的.h
文件:
@interface DoubleLabelView
@property (nonatomic,strong) NSString *mainText;
@property (nonatomic,strong) NSString *subText;
- (void)setText:(NSString*)mainText subText:(NSString*)subText;
@end
然後在.m
文件:
@interface DoubleLabelView()
@property (nonatomic,strong) UILabel *mainLabel;
@property (nonatomic,strong) UILabel *subLabel;
@end
@implementation DoubleLabelView
- (void)setText:(NSString*)mainText subText:(NSString*)subText {
self.mainText = mainText;
self.subText = subText;
}
- (void)setMainText:(NSString*)mainText {
_mainText = mainText;
self.mainLabel.text = mainText;
}
- (void)setSubText:(NSString*)subText {
_subText = subText;
self.subLabel.text = subText;
}
如果自定義視圖上標籤的位置是恆定的,那麼我建議您只使用.xib
文件來設置自定義視圖的外觀。而且我可能會添加一個自定義工廠方法,它會立即採用manText
和subText
參數並調用setText:subText:
。
如果您繼承了UIView
,則可以在子類中包含的視圖的特定代碼越多越好。
以同樣的方式我已經添加方法到UIView
允許您更改mainText
,subText
,或兩者在一個單一的方法調用的同時,你可以繼續添加方法,如本改變你的UIView
的屬性。
如果要重新定位你的標籤,考慮增加一對CGPoint
屬性:
@property (nonatomic,assign) CGPoint mainLabelPosition;
@property (nonatomic,assign) CGPoint subLabelPosition;
- (void)setPosition:(CGPoint)mainPosition subPosition:(CGPoint)subPosition;
並寫出這些類似的那些我給你改變文本的方法。
需要更多細節。關於標籤的定義是什麼? – nhgrif
沒有什麼真正的習慣。它總是有兩個具有特定位置和外觀的正常標籤。我只是不確定它是否會在全球範圍內發生變化。用手改變每個視圖將是一個痛苦... – Tomek
你的問題還遠未明確。除了標籤上的文字之外,您想要更改這些標籤嗎? – nhgrif