(iPhone/iPad开发)在UIView上绘制文本

来源:未知 责任编辑:智问网络 发表时间:2013-09-22 21:35 点击:

在网上查了下资料,有两种方法:

 

方法一,利用Quartz本身的绘图方法:

- (void) drawText:(NSString *)text x:(float)x y:(float)y {

 CGContextRef context = UIGraphicsGetCurrentContext();

 CGContextSelectFont(context, "Arial", 20, kCGEncodingMacRoman);

 CGContextSetTextDrawingMode(context, kCGTextFill);

 CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);

 CGContextSetTextMatrix(context, xform);

 CGContextSetTextPosition(context, x, y+20); // 20 is y-axis offset pixels

 CGContextShowText(context, [text UTF8String], strlen([text UTF8String]));

 }

 

方法二,利用NSString本身的drawAtPoint方法

- (void) drawText2:(NSString *)text x:(float)x y:(float)y {

 UIFont *font = [UIFont fontWithName:@"Arial" size:20];

 [text drawAtPoint:CGPointMake(x, y) withFont:font];

 }

 

在UIView class中的darw code

- (void)drawRect:(CGRect)rect {

 CGContextRef context = UIGraphicsGetCurrentContext();

 CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);

 NSString *text = @"Hello World!";

 [self drawText:text x:50 y:0];

 [self drawText2:text x:50 y:30];

 }

 这两种方法都可以,但是第二种方法比第一種方法性能差些。

 


摘自 安迪·潘 的专栏

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • UITableView一些方法
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • iphone(object-c)内存管理(1)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1