如何在iPhone上垂直绘制NSString?

3

中文可以横向和纵向查看。我想让用户两种选择都有。在iPhone视图中如何实现?

例如:

+-------------------------+         +-------------------------+
| Hello, I am a newbie.   |         |                 b  a  H |
|                         |         |                 i  m  e |
|                         |         |                 e     l |
|                         |   --->  |                 .  a  l |
|                         |         |                       o |
|                         |         |                    n  , |
|                         |         |                    e    |
|                         |         |                    w  I |
+-------------------------+         +-------------------------+
1个回答

0

你好 "ohho", 没有这样的方法或属性可以实现这一点,但是可以通过“jugad”技术实现。 在下面的代码中,我假设myLabel是一个UILabel对象,它以所需的形式显示文本,其中文本来自myTextField(一个UITextField对象)。

CGFloat height= myLabel.font.lineHeight;
int lineCount = myLabel.frame.size.height/height;
float temp = [myTextField.text length]*1.0f/lineCount;
int charPerLine = temp;
charPerLine = (temp > charPerLine)?charPerLine+1:charPerLine;
NSString* original = myTextField.text;
NSString* modifiedString = @"";
for (int i =0; i < lineCount; i++) 
{
    for (int j = charPerLine-1 ; j >=0; j--) 
    {
        NSRange r = NSMakeRange(i+j*lineCount, 1);
        if (r.location < [original length]) {
            modifiedString =[modifiedString stringByAppendingFormat:@"%@ ",[original substringWithRange:r]];
        }
    }
    modifiedString = [modifiedString stringByAppendingString:@"\n"];
}
myLabel.text = modifiedString;  

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