iPhone开发——文字竖排

本文介绍了一种在iPhone开发中实现文字竖排的方法,通过创建一个名为MyCanvas的UIView子类,并重写drawRect方法。在方法内,遍历字符串并根据坐标画出每个字符,从而实现文字的竖向排列。通过这种方式,不仅可以实现文字竖排,还可以进行其他方向的文字排列。在需要竖排文字的地方,直接添加MyCanvas实例到视图即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值