gpt4 book ai didi

ios - 在 iOS 上绘制垂直文本

转载 作者:可可西里 更新时间:2023-11-01 03:38:09 24 4
gpt4 key购买 nike

我想在 iOS 上垂直绘制一个 NSAttributedString(或 NSString)。 “垂直”是指:

Vertical text example

Apple's documentation表示 NSAttributedString 的标准属性是 NSVerticalGlyphFormAttributeName,但不幸的是,表示:

"In iOS, horizontal text is always used and specifying a different value is undefined."

The same document还提到了NSTextLayoutSectionsAttribute,它似乎支持NSTextLayoutOrientation,它允许NSTextLayoutOrientationHorizo​​ntalNSTextLayoutOrientationVertical

目前,这 4 个术语中没有一个在 SO 上得到任何命中。 只是那寂寞的口哨声

但是,我不知道如何设置它,它是否适用于 iOS,或者是否可以用于 [myAttributedString drawAtPoint: whereItOughtaGo] 样式的垂直字符串渲染.

谢谢。

最佳答案

如果它只是像您的示例中那样的单行文本,您可以使用各种解决方法。我会亲自创建一个 UILabel 子类,如下所示:

@implementation VerticalLabel

- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];

if (self) {
self.numberOfLines = 0;
}

return self;
}

- (void)setText:(NSString *)text {
NSMutableString *newString = [NSMutableString string];

for (int i = text.length-1; i >= 0; i--) {
[newString appendFormat:@"%c\n", [text characterAtIndex:i]];
}

super.text = newString;
}

@end

现在你只需要替换:

UILabel *lbl = [[UILabel alloc] init];

与:

UILabel *lbl = [[VerticalLabel alloc] init];

获取垂直文本。

关于ios - 在 iOS 上绘制垂直文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22195916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com