我正在尝试水平对齐不同大小和字体的文本位。
这是我想要的结果(用scribus制作):
您可以看到文本水平对齐(与像素对齐)。
我尝试使用基本的UITextView实现它,并证明文本的合理性。这是我得到的:
您可以看到文本未与像素水平对齐。 我尝试了居中,但仍然不够好:
如果事情不够严重,第一行和第三行都是动态文本......因此它们的大小会发生变化。
我看了一下textkit,但没有找到任何结论......
我的主角是:
但我不知道该怎么做。 任何线索?谢谢!
答案 0 :(得分:0)
您是否尝试过NSString的boundingRectWithSize:options:attributes:context:
?
CGRect rect = [string boundingRectWithSize:CGSizeMake(width, height)
options:NSStringDrawingUsesFontLeading
attributes:attributes
context:nil];
如果您还支持iOS 6,请使用-[NSString sizeWithFont:constrainedToSize:lineBreakMode:]
CGSize textSize = [string sizeWithFont:uifont
constrainedToSize:maximumCGSize
lineBreakMode:lineBreakMode];
自iOS 7起,sizeWithFont:constrainedToSize:lineBreakMode:
方法已被弃用。
使用其中一种方法,您可以找到最宽的线,并与其他线匹配。在你的动态文本的情况下,我建议不要使用UITextView来确保文本正确对齐。