1. 大家都知道UITextField支持设置placeholder, 并且可以改变placeholder字体大小和颜色, 参照代码:
/* 设置placeholder*/ [textField setPlaceholder:@"placeholder in textField"]; /* 改变placeholder的颜色 */ [textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; /* 改变placeholder的字体大小 */ [textField setValue:[UIFont systemFontOfSize:20.f] forKeyPath:@"_placeholderLabel.font"];
2. UITextView是不支持placeholder, 不过没事, 我们可以手动添加一个label, 设置字体大小颜色就只需要操作label即可:
/* 添加UITextView */ UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 320.f, 47.f)]; textView.delegate = self; // textView.backgroundColor = [UIColor clearColor]; [self addSubView:textView]; /* 添加placeholder Label */ UILabel *placeHolderLabel = [[UILabel alloc] initWithFrame:CGRectZero]; placeHolderLabel.textColor = [UIColor lightGrayColor]; placeHolderLabel.text = @"placeholder in textView"; [placeHolderLabel sizeToFit]; placeHolderLabel.frame = CGRectMake(0, 5.f, placeHolderLabel.frame.size.width, placeHolderLabel.frame.size.height); [self addSubView:placeHolderLabel]; /* 监听textView发生变化, 无内容则显示placeholder */ - (void)textViewDidChange:(UITextView *)textView{ if ([[textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@""]) { placeHolderLabel.text = @"placeholder in textView"; }else{ placeHolderLabel.text = @""; } }
时间: 2024-08-26 17:39:55