ラベルテキストの動的変更を実現するには? 例えば、
labe.text = @"1";
2番目は次のとおりです。
label.text = @"2";
これを行うには、UILabel クラスを拡張します。
MyLable.h
#import <UIKit/UIKit.h>
@protocol MyLabelDelegate;
@interface MYLabel : UILabel
@property(nonatomic, unsafe_unretained) id<MyLabelDelegate> delegate;
@end
@protocol MyLabelDelegate <NSObject>
-(void) label:(UILabel *) label didChangeText:(NSString *) string;
@end
私のレーベル.m
@implementation MYLabel
@synthesize delegate = _delegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
- (void)setText:(NSString *)text{
[super setText:text];
if([self.delegate respondsToSelector:@selector(label:didChangeText:)]){
[_delegate label:self didChangeText:text];
}
}
@end
そこで変更を検出したい場合は、View ControllerにMyLabelデリゲートを実装できます