使用不同的颜色和字体创建UITextView占位符

时间:2014-08-08 06:37:03

标签: ios iphone ios7 uitextview placeholder

为UITextView创建占位符的最佳方法是什么,占位符将具有不同的颜色和字体。我想要的一个例子是:

_textView = [[UITextView alloc] initWithFrame:CGRectMake(7.0, 35.0, 306.0, 90.0)];
_textView.text = @"This is a variable called foo.";

我想" foo"在文本中更大胆,颜色更深。

最好的做法是什么?

3 个答案:

答案 0 :(得分:6)

我有简单的方法。

UILabel下方添加UITextView并设置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;
    }
}   

我希望这个想法对你有用。

答案 1 :(得分:1)

您必须制作标签并将其添加为textview的子视图。 然后,在textview委托方法中,在适当的时候删除标签,并在textview的文本变成@“”时再次重新添加;

答案 2 :(得分:0)

你有简单的解决方案,

使用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;
}
}