【问题标题】:Font size of the placeholder占位符的字体大小
【发布时间】:2014-03-15 19:54:03
【问题描述】:

我想在与文本本身大小相同的文本字段中绘制文本占位符

但是,我在文本字段的背景中看到了一个小跳跃,因为它们的大小不同。

我继承了 UITextField 类并重写了方法

-(void)drawPlaceholderInRect:(CGRect)rect{
     [[self placeholder] drawInRect:rect withAttributes:@{NSForegroundColorAttributeName : [UIColor blueColor]  , NSFontAttributeName : self.font}];
}

如何确保它的字体大小与文本字段的字体大小相同?

【问题讨论】:

    标签: ios fonts uitextfield


    【解决方案1】:

    默认情况下,UITextFieldplaceholdertext 字体大小相同。

    如果您使用设置了不同字体的attributedText 属性设置文本字段的文本,则设置文本字段的attributePlaceholder 属性并使用相同的字体。

    没有必要为此重写drawPlaceholderInRect: 方法。这假设您只需要支持 iOS 6.0 及更高版本。

    NSDictionary *attrs = @{ NSForegroundColorAttributeName : [UIColor blueColor], NSFontAttributeName : self.font };
    NSAttributedString *str = [[NSAttributedString alloc] initWithString:someText attributes:attrs];
    someTextField.attributePlaceholder = str;
    

    【讨论】:

    • 我希望占位符有不同的颜色,这就是我这样做的原因,我不想检查我的 interfacebuilder 中的每个文本字段并调整所有属性,我希望它是这样的按班级
    • 使用attributedPlaceholder 可以设置颜色、字体和其他属性。
    • 你能给我一个例子吗?我也想让它在文本字段中居中
    • 这很像您发布的代码,只是使用这些属性来创建NSAttributedString。然后将属性字符串分配给attributedPlaceholder 属性。
    • 查看我的更新答案。添加您可能需要的任何其他属性。
    猜你喜欢
    • 2015-09-04
    • 2019-05-23
    • 2011-10-09
    • 2023-04-11
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多