【问题标题】:UITextField underlines from NSAttributedString are only 1 pixel high?NSAttributedString 中的 UITextField 下划线只有 1 个像素高?
【发布时间】:2012-11-17 00:23:16
【问题描述】:

标签(图片底部)和文本字段(顶部)具有相同的属性Text。但请看下划线。文本字段中的那些只有一个像素高。这看起来很可怕。有谁知道是什么原因造成的或如何预防?

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        UITextField* textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 600, 200)];
        NSMutableAttributedString* string = [[NSMutableAttributedString alloc]initWithString:@"The quick brown fox jumps"];
        NSNumber* underlineNumber = [NSNumber numberWithInteger:NSUnderlineStyleSingle];
        UIFont* font = [UIFont systemFontOfSize: 50];
        [string addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, string.length)];
        for (NSInteger i=0; i<20; i++) {
            if (i%3==0) {
                [string addAttribute:NSUnderlineStyleAttributeName value:underlineNumber range:NSMakeRange(i, 1)];
            }
        }
        textField.backgroundColor = [UIColor whiteColor];
        textField.attributedText = string;
        [self addSubview:textField];
        UILabel* label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 600, 200)];
        label.attributedText = string;
        label.font = font;
        label.backgroundColor = [UIColor whiteColor];
        [self addSubview:label];
    }
    return self;
}

【问题讨论】:

    标签: ios uitextfield nsattributedstring underline


    【解决方案1】:

    标签使用自定义渲染样式来绘制下划线,不幸的是,这与 UITextField 使用的不同,后者在编辑时使用 WebKit 呈现,而在静态时使用 Core Text 呈现。请向 bugreporter.apple.com 提交错误。谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 2020-12-11
      相关资源
      最近更新 更多