// // CustomTextView.m // HD wallpaper // #import "CustomTextView.h" @interface CustomTextView () @property (nonatomic, strong) UILabel *placeholderLabel; @end @implementation CustomTextView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self commonInit]; } return self; } - (void)awakeFromNib { [super awakeFromNib]; [self commonInit]; } - (void)commonInit { _placeholderColor = [UIColor lightGrayColor]; _borderColor = [UIColor grayColor]; _borderWidth = 1.0; _cornerRadius = 5.0; self.layer.borderColor = self.borderColor.CGColor; self.layer.borderWidth = self.borderWidth; self.layer.cornerRadius = self.cornerRadius; self.placeholderLabel = [[UILabel alloc] initWithFrame:CGRectZero]; self.placeholderLabel.textColor = self.placeholderColor; self.placeholderLabel.numberOfLines = 0; [self addSubview:self.placeholderLabel]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange:) name:UITextViewTextDidChangeNotification object:nil]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)setPlaceholder:(NSString *)placeholder { _placeholder = placeholder; self.placeholderLabel.text = placeholder; [self setNeedsLayout]; } - (void)layoutSubviews { [super layoutSubviews]; [self updatePlaceholderFrame]; self.placeholderLabel.hidden = self.hasText; } - (void)updatePlaceholderFrame { CGFloat padding = self.textContainer.lineFragmentPadding; CGFloat width = CGRectGetWidth(self.bounds) - padding * 2; CGSize placeholderSize = [self.placeholderLabel sizeThatFits:CGSizeMake(width, CGFLOAT_MAX)]; self.placeholderLabel.frame = CGRectMake(padding, self.textContainerInset.top, width, placeholderSize.height); } - (void)textDidChange:(NSNotification *)notification { self.placeholderLabel.hidden = self.hasText; } @end //#import "CustomTextView.h" // //// 创建并添加CustomTextView //CustomTextView *textView = [[CustomTextView alloc] initWithFrame:CGRectMake(20, 100, self.view.frame.size.width - 40, 150)]; //textView.placeholder = @"请输入内容..."; //textView.placeholderColor = [UIColor lightGrayColor]; //textView.borderColor = [UIColor blueColor]; //textView.borderWidth = 2.0; //textView.cornerRadius = 10.0; //[self.view addSubview:textView];