如何在iOS 7上完美地调整文本对齐

3
我想水平对齐不同大小和字体的文本片段。
这是我想要的结果(使用Scribus制作):
您可以看到文本已完美地水平对齐(到像素)。
我尝试使用基本的UITextView实现此操作,并调整文本。这就是我得到的结果:
您可以看到文本未水平对齐到像素。
我尝试居中,但仍然不够好:
如果事情还不够难,第一行和第三行是动态文本...因此它们的大小会改变。
我研究过TextKit,但没有找到什么确凿的东西...
我的线索是:
1.为文本查找最佳字体大小。 2.均匀分配字形,使文本边界框等于所需宽度。
但我不知道如何做到这一点。有任何线索吗?谢谢!

只是一个建议,您可以使用图像而不是文本,并在需要执行动态文本操作时将图像更改为另一个图像(如果可能的话)。 - Dylanthepiguy
1个回答

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];

sizeWithFont:constrainedToSize:lineBreakMode:方法已在iOS 7中被弃用。

使用其中一种方法,您可以找到最宽的行并将其他行与其匹配。对于动态文本的情况,我建议不要使用UITextView来确保文本正确对齐。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接