uitextview的占位字

占坑

 

 

#import <UIKit/UIKit.h>

 

@interface LRFeedBackTextView : IQTextView

 

/**placeholder占位文字*/

@property (nonatomic, copy) NSString *placeholder;

/**placeholderColor占位文字颜色*/

@property (nonatomic, strong) UIColor *placeholderColor;

 

@end

 

 

 

#import "LRFeedBackTextView.h"

@interface LRFeedBackTextView()

 

/**UILabel*/

@property (nonatomic, strong) UILabel *placeholderLabel;

@end

 

@implementation LRFeedBackTextView

 

 

/**

 *  懒加载属性,并设置属性的值

 */

-(UILabel *)placeholderLabel

{

    if (!_placeholderLabel) {

        UILabel *label = [[UILabel alloc]init];

        label.font = [UIFont systemFontOfSize:14];

        label.textColor = [UIColor grayColor];

        label.numberOfLines = 0;

        [self addSubview:label];

        _placeholderLabel = label;

    }

    return _placeholderLabel;

}

 

/**

 *  设置自己的属性

 */

-(instancetype)initWithFrame:(CGRect)frame

{

    if (self = [super initWithFrame:frame]) {

        self.alwaysBounceVertical = YES;

        self.textColor = [UIColor blackColor];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(texting) name:UITextViewTextDidChangeNotification object:self];

        

    }

    return self;

}

 

- (void)awakeFromNib{

 

}

 

- (instancetype)initWithCoder:(NSCoder *)aDecoder{

    if (self = [super initWithCoder:aDecoder]) {

        self.scrollEnabled = NO;

        self.alwaysBounceVertical = YES;

        self.textColor = [UIColor blackColor];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(texting) name:UITextViewTextDidChangeNotification object:self];

    }

    return self;

}

 

- (void)dealloc{

    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

 

/**

 *  监听有文字输入

 */

-(void)texting

{

    [self setPlaceholderTextShow];

}

/**

 *  设置占位文字的显示

 */

-(void)setPlaceholderTextShow

{

    self.placeholderLabel.hidden = self.hasText;

}

 

-(void)layoutSubviews

{

    [super layoutSubviews];

    

    self.placeholderLabel.frame = CGRectMake(4, 8, SCREEN_WIDTH - 16, 0);

 

    [self.placeholderLabel sizeToFit];//这一步很重要,不能遗忘

}

 

-(void)setPlaceholder:(NSString *)placeholder

{

    placeholder = placeholder;

    self.placeholderLabel.text = placeholder;

    [self setNeedsLayout];

}

 

-(void)setPlaceholderColor:(UIColor *)placeholderColor

{

    self.placeholderLabel.textColor = placeholderColor;

    [self setNeedsLayout];

}

 

-(void)setFont:(UIFont *)font

{

    [super setFont:font];

    self.placeholderLabel.font = font;

    [self setNeedsLayout];

}

 

-(void)setText:(NSString *)text

{

    [super setText:text];

    [self setPlaceholderTextShow];

}

 

-(void)setAttributedText:(NSAttributedString *)attributedText

{

    [super setAttributedText:attributedText];

    [self setPlaceholderTextShow];

}

posted @ 2016-02-16 11:33  LazVy  阅读(152)  评论(0编辑  收藏  举报