占坑
#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];
}