0
CSS有一個名爲word-spacing
的屬性,它允許您證明不同單詞之間的空間大小。一個例子是像UILabel中的字間距
Hello world vs. Hello world
有沒有辦法做到在UILabel
在Objective-C這個同樣的效果?我看過class reference for NSParagraphStyle,但似乎沒有選擇。任何人都可以提出替代方案
CSS有一個名爲word-spacing
的屬性,它允許您證明不同單詞之間的空間大小。一個例子是像UILabel中的字間距
Hello world vs. Hello world
有沒有辦法做到在UILabel
在Objective-C這個同樣的效果?我看過class reference for NSParagraphStyle,但似乎沒有選擇。任何人都可以提出替代方案
我不知道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];
}