在iOS上绘制垂直文本

本约翰

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

垂直文字示例

Apple的文档说的标准属性NSAttributedStringNSVerticalGlyphFormAttributeName,但不幸

“在iOS中,始终使用水平文本,并且未指定其他值。”

同一份文件还提到NSTextLayoutSectionsAttribute,这似乎支持NSTextLayoutOrientation,允许NSTextLayoutOrientationHorizontalNSTextLayoutOrientationVertical

目前,这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];

获取垂直文本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在iOS上绘制垂直文本

来自分类Dev

在iOS上绘制扭曲文本

来自分类Dev

如何在iOS中的后台线程上绘制文本?

来自分类Dev

iOS:在矩形的一点上绘制文本

来自分类Dev

如何在iOS中的后台线程上绘制文本?

来自分类Dev

在CGPoint上绘制文本

来自分类Dev

无法在画布上绘制垂直虚线

来自分类Dev

无法在画布上绘制垂直虚线

来自分类Dev

球拍GUI,垂直绘制文本,带有“ angle”参数的问题

来自分类Dev

球拍GUI,垂直绘制文本,带有“ angle”参数的问题

来自分类Dev

标签中的iOS文本垂直隐藏

来自分类Dev

图像上的垂直对齐标题文本

来自分类Dev

图像上的垂直对齐标题文本

来自分类Dev

TextArea无法在libgdx上绘制完整文本

来自分类Dev

在滚动条上绘制文本

来自分类Dev

HTML 5在图像上绘制弯曲的文本

来自分类Dev

表面视图:文本绘制在不同的图层上

来自分类Dev

pygame:在屏幕上绘制之前将文本绘制到Surface

来自分类Dev

SurfaceView垂直线在整个屏幕上绘制速度太慢

来自分类Dev

在DataGridView垂直滚动条上绘制标记

来自分类Dev

使用CSS在图像上绘制3条垂直线

来自分类Dev

在ggplot上绘制与线图相交的垂直/水平线

来自分类Dev

如何在时间轴上绘制垂直线?

来自分类Dev

在iOS 8.2上更改UIBarButtonItem的垂直位置

来自分类Dev

iOS:在CGContext上绘制最终会模糊

来自分类Dev

LIBGDX:SpriteBatch绘图未在iOS上绘制

来自分类Dev

使用OpenGL ES在iOS上绘制细线

来自分类Dev

在iOS中的CorePlot图表上绘制虚线

来自分类Dev

LIBGDX:SpriteBatch绘图未在iOS上绘制