iPhone开发——文字竖排

来源:互联网 发布:社交媒体数据分析招聘 编辑:程序博客网 时间:2024/04/29 17:27

iPhone自带的控件中文字是无法实现竖排的,但开发过程中却会遇到竖排的要求,现在就写一下我在iPhone开发中实现文字竖排的方法,

首先新建一个类继承于UIView命名为:MyCanvas,然后把(void)drawRect:(CGRect)rect方法的注释打开并重写其方法。

- (void)drawRect:(CGRect)rect

{

[[UIColor colorWithRed:101.0/255 green:61.0/255 blue:0 alpha:1.0]set];//设置文字颜色

int iCols = 0;//文字显示的列数

int iRows = 0;//文字显示的行数

int iSpace = 0;//文字的空格数

NSString *sTitle = item.sTitle;

int titleLen = [sTitle Length];

for(int i = 0; i < titleLen; i++)

{

int iPosX = MARGIN_LEFT - iCols * FONT_LINE_HEIGHT

;//iPosX是屏幕上x轴的坐标、FONT_LINE_HEIGHT是行高

int iPosY = MARGIN_TOP + iRows * FONT_LINE_WIDTH + iSpace * FONT_LINE_SPACE;//iPosY是屏幕上y轴的坐标、FONT_LINE_WIDTH是行宽、FONT_LINE_SPACE是空格大小

CGPoint point = CGPointMake(iPosX, iPosY);

NSString *sTemp = [sTitle substringWithRange:NSMakeRange(i, 1)];

if([sTemp isEqualToString:TAG_TAB])//判断是否有空格

{

iSpace ++;

}

else if([sTemp isEqualToString:TAG_NEW_LINE])//判断是否换行

{

iRows = 0;

iCols ++;

}

else{

[sTemp drawAtPoint:point withFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]];//将文字画在画布上指定的位置

iRows ++;

}

}

}

省略号部分是实现其它文字竖排的代码,与实现Title竖排是一样的,就不一一列举了。

然后在需要实现文字竖排的地方调用MyCanvas类即可,如:

MyCanvas *canvas = [[MyCanvas alloc]initWithFrame:CGRectMake(0, 0, 252, 340) InfoItem:item];

[self.view addSubview:canvas];

[canvas release];

其实如上方法就是定义一个画布,然后把文字一一画在在指定的位置,如此,不管是要求文字竖排还是斜排或是倒排,便都可以实现了

原创粉丝点击