实现原理:在textView里面设置一个承载placeholder的label,遵守textView的代理方法,在代理方法里面判断如果textView.text.length ==0 就显示label.text
textView.text.length !=0 则 label.text ==nil
--新人小白,请多指教
@interface AskViewViewController ()<UITextViewDelegate>
@property(nonatomic,strong)UITextView * textView;
@property(nonatomic,strong)UILabel * placehoderLabel;
@end
@implementation AskViewViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = BackGrayColor;
self.textView = [[UITextView alloc]init];
self.textView.frame = CGRectMake(0,143.5, screenWidth,150);
self.textView.font = [UIFont systemFontOfSize:14];
self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.textView.backgroundColor = [UIColor whiteColor ];
[self.view addSubview:self.textView];
self.textView.hidden = NO;
self.textView.delegate = self;//别忘了设置代理.....
self.placehoderLabel = [[UILabel alloc]init];
self.placehoderLabel.font = [UIFont systemFontOfSize:14];
self.placehoderLabel.frame = CGRectMake(5,6, 150, 20);
self.placehoderLabel.text = @"请输入请假原由";
self.placehoderLabel.enabled = NO;//这个属性很重要
self.placehoderLabel.backgroundColor = [UIColor clearColor];
[self.textView addSubview:self.placehoderLabel];
}
-(void)textViewDidChange:(UITextView *)textView
{
self.textView = textView;
if (textView.text.length == 0) {
self.placehoderLabel.text = @"请输入请假原由";
}else
{
self.placehoderLabel.text = @"";
}
}