如何在iPhone上垂直绘制NSString?
问题描述:
汉字可以水平和垂直查看。我想让用户有两种选择。这怎么能在iPhone视图中完成?如何在iPhone上垂直绘制NSString?
例如
+-------------------------+ +-------------------------+
| Hello, I am a newbie. | | b a H |
| | | i m e |
| | | e l |
| | ---> | . a l |
| | | o |
| | | n , |
| | | e |
| | | w I |
+-------------------------+ +-------------------------+
答
嗨“ohho” 没有这样的方法或属性,通过该U可以做到这一点,但是,可以通过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;