当前位置: 首页 > 工具软件 > LTView > 使用案例 >

LTView封装001

沈鸿光
2023-12-01
#pragma mark - 声明属性

@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *text;
@property (nonatomic, assign, getter=isSecure) BOOL secure;
@property (nonatomic, assign) id <UITextFieldDelegate> delegate;




#pragma mark - 声明方法
- (instancetype)initWithFrame:(CGRect)frame
                        title:(NSString *)title
                  placeholder:(NSString *)placeholder;

@interface LTView ()

#pragma mark - 声明属性
@property (nonatomic, retain) UILabel *label;
@property (nonatomic, retain) UITextField *textField;

@end


@implementation LTView


#pragma mark - 实现方法
- (instancetype)initWithFrame:(CGRect)frame
                        title:(NSString *)title
                  placeholder:(NSString *)placeholder
{
    // 使用从父类继承过来的初始化方法,给从父类继承过来的属性做初始化
    self = [super initWithFrame:frame];
    if (self) {
        
        // 添加label
        self.label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, frame.size.width * 0.3, frame.size.height)] autorelease];
        _label.text = title;
        [self addSubview:_label];
        
        // 添加textField
        self.textField = [[[UITextField alloc] initWithFrame:CGRectMake(frame.size.width * 0.3, 0, frame.size.width * 0.7, frame.size.height)] autorelease];
        _textField.borderStyle = UITextBorderStyleRoundedRect;
        _textField.placeholder = placeholder;
        [self addSubview:_textField];
    }
    return self;
}



#pragma mark - 重写方法
- (void)setTitle:(NSString *)title
{
    _label.text = title;
}
- (NSString *)title
{
    return _label.text;
}

- (void)setText:(NSString *)text
{
    _textField.text = text;
}
- (NSString *)text
{
    return _textField.text;
}

- (void)setSecure:(BOOL)secure
{
    _textField.secureTextEntry = secure;
}
- (BOOL)isSecure
{
    return _textField.secureTextEntry;
}



#pragma mark - set代理,返回代理
- (void)setDelegate:(id<UITextFieldDelegate>)delegate
{
    _textField.delegate = delegate;
}

- (id<UITextFieldDelegate>)delegate
{
    return _textField.delegate;
}



#pragma mark - 重写
#pragma mark dealloc
- (void)dealloc
{
    [_label release];
    [_textField release];
    
    [super dealloc];
}

 类似资料: