创建具有不同颜色和字体的 UITextView 占位符
Posted
技术标签:
【中文标题】创建具有不同颜色和字体的 UITextView 占位符【英文标题】:Creating a UITextView placeholder with different colors and fonts 【发布时间】:2014-10-01 13:40:11 【问题描述】:为 UITextView 创建占位符的最佳方法是什么,占位符将具有不同的颜色和字体。我想要的一个例子是:
_textView = [[UITextView alloc] initWithFrame:CGRectMake(7.0, 35.0, 306.0, 90.0)];
_textView.text = @"This is a variable called foo.";
我希望文本中的“foo”颜色更粗更深。
如何做到最好?
【问题讨论】:
NSAttributedString
?
这可能对你有帮助***.com/questions/11583581/…
***.com/questions/20781506/format-text-in-uitextview
从来不知道 nsattributedstring
【参考方案1】:
我有一个简单的方法。
在下面的UITextView
中添加UILabel
并设置UITextView
clearColor。并根据需要设置UILabel
文本并将该文本颜色设置为与您的要求颜色相同。如果你点击 textview 然后隐藏该标签,如果你清除所有 textview 然后显示你的占位符标签。
看这个例子
- (void)textViewDidEndEditing:(UITextView *)theTextView
if (![textView hasText])
lbl.hidden = NO;
- (void) textViewDidChange:(UITextView *)textView
if(![textView hasText])
lbl.hidden = NO;
else
lbl.hidden = YES;
我希望这个想法对你有用。
【讨论】:
好主意,谢谢!很遗憾UITextView
不仅仅支持简单的占位符。哦,好吧,这个解决方案效果很好:)【参考方案2】:
您好,有一个简单的解决方案,
使用 GCPlaceholderTextView,您可以在其中设置占位符文本以及颜色和字体。
GCPlaceholderTextView的链接
添加GCPlaceholderTextView.h
文件:
@property(nonatomic, strong) UIFont *placeholderFont;
添加GCPlaceholderTextView.m
文件:
- (void)setPlaceholderFont:(UIFont *)fontName
placeholderFont = fontName;
if ([super.text isEqualToString:self.placeholder])
self.font = placeholderFont;
【讨论】:
【参考方案3】:您必须制作一个标签并将其添加为您的文本视图的子视图。 然后,在 textview 委托方法中,在适当的时候删除标签,并在 textview 的文本变为 @"" 时重新添加它;
【讨论】:
以上是关于创建具有不同颜色和字体的 UITextView 占位符的主要内容,如果未能解决你的问题,请参考以下文章
UITextView中,能不能单独设置每行文字的字体,颜色,大小