CSS有一个名为word-spacing
的属性,它允许您证明不同单词之间空格的大小。一个例子就像是
Hello world
vs.
Hello world
有没有办法在Objective-C的UILabel
中实现同样的效果?我看过class reference for NSParagraphStyle,但似乎并不是一个选择。有人可以提出替代方案吗?
答案 0 :(得分:0)
我不知道UILabel
中允许您这样做的任何功能。另一种方法是创建UIView
的自定义子类,然后覆盖drawRect
方法以便随意绘制文本。
这是一个示例drawRect
方法。代码绘制标签左侧附近的第一个字符串。第二个字符串绘制在第一个字符串右侧的15个点。第三个字符串绘制在标签的右侧附近。 (所有字符串都垂直居中。)生成的标签如下所示
- (void)drawRect:(CGRect)rect
{
NSString *str;
NSArray *strArray = @[ @"First", @"Second", @"Third" ];
CGSize strSize[strArray.count];
NSDictionary *attributes = @{ NSFontAttributeName : self.font };
int i = 0;
for ( str in strArray )
strSize[i++] = [str sizeWithAttributes:attributes];
int y = (self.bounds.size.height - strSize[0].height) / 2;
// draw the first string 4 points from the left edge
[strArray[0] drawAtPoint:CGPointMake( 4, y ) withAttributes:attributes];
// draw the second string 15 points to the right of the first string
CGPoint point = CGPointMake( 4 + strSize[0].width + 15, y );
[strArray[1] drawAtPoint:point withAttributes:attributes];
// draw the third string 4 points from the right edge
point = CGPointMake( self.bounds.size.width - 4 - strSize[2].width, y );
[strArray[2] drawAtPoint:point withAttributes:attributes];
}