2014-10-30 106 views
0

我有一个UITextField的子类。在我的例子中,文本是正确的对齐。我有rightView最后显示货币符号,所以当用户输入数据时,货币符号将始终可见。我决定这个解决方案比在每次文本更改后手动添加文本和手动添加货币符号要好。UITextField rightView重叠右对齐文本

我的问题是,文本和rightView略有重叠。我该如何解决这个问题?

回答

1

根据文本和字体大小计算宽度。使用此宽度作为最大宽度并且安排货币符号视图。

以下是计算文本最大宽度的方法。

- (CGFloat) widthWithFont:(NSString *)string font:(UIFont *)font { 
    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil]; 
    return [[[NSAttributedString alloc] initWithString:string attributes:attributes] size].width; 
} 
+0

10倍,它的工作原理。我只需要在宽度上添加额外的边距。我也对齐右侧视图中的文本(我在右侧视图中使用标签)。 – new2ios 2014-10-30 13:50:53

+1

@ new2ios是使用相同的方法来计算正确的视图标签将在两个视图之间准确的边距。 – Kampai 2014-11-01 04:54:09