你并不需要一个代理关系简单地设置一对文本标签。如果你想要做一个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