4. Quartz2D 绘制文字

#pragma mark 绘制文字(中文)
-(void)drawText2:(CGContextRef)context{
    NSString *string = @"博阿士大夫撒风景撒开了房间撒";
    //1.获取字体
    NSLog(@"%@",[UIFont familyNames]);
    UIFont *font = [UIFont fontWithName:@"Marker Felt" size:20];
    //如果在UILabel中,可以将numbersOfLine设置0,并且指定足够的高度即可

    CGRect rect = CGRectMake(290, 10, 30, 440);
    [[UIColor lightGrayColor]set];
    UIRectFrame(rect);

    [[UIColor redColor]set];

    /*
     提示:在对齐方式的枚举中
     a. NSTextAlignmentJustified两端对齐
     b. NSTextAlignmentNatural
     以上两种对其方式不能使用
     */
    [string drawInRect:rect withFont:font lineBreakMode:(NSLineBreakByCharWrapping) alignment:(NSTextAlignmentLeft) ];

}

#pragma mark 绘制文字(英文)
-(void)drawText:(CGContextRef)context{
    NSString *string = @"Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world";
    //1.获取字体
    NSLog(@"%@",[UIFont familyNames]);
    UIFont *font = [UIFont fontWithName:@"Marker Felt" size:40];
    //在指定点绘制字符串
    [string drawAtPoint:CGPointMake(50, 50) withFont:font];
    //如果在UILabel中,可以将numbersOfLine设置0,并且指定足够的高度即可

    CGRect rect = CGRectMake(50, 50, 270, 360);
    [[UIColor lightGrayColor]set];
    UIRectFrame(rect);

    [[UIColor redColor]set];

    /*
     提示:在对齐方式的枚举中
        a. NSTextAlignmentJustified两端对齐
        b. NSTextAlignmentNatural
     以上两种对其方式不能使用
     */
    [string drawInRect:rect withFont:font lineBreakMode:(NSLineBreakByWordWrapping) alignment:(NSTextAlignmentLeft) ];

}
时间: 2024-10-07 13:59:28

4. Quartz2D 绘制文字的相关文章

iOS Quartz2D绘制线、矩形、弧、圆、文字、图片

利用Quartz2D中提供的图层上下文 Layer Graphics Context,进行简单绘制线.矩形.弧.圆.文字.图片 在storyBoard中得拖入控制器,添加多个UIView控件,并把各个UIView的class修改为自定义的类. 如: 绘制线: // // HJLineView.m // 画线三角矩形圆 // // Created by HJiang on 15/1/2. // Copyright (c) 2015年 HJiang. All rights reserved. //

用TextPaint来绘制文字

TextPaint是paint的子类,用它可以很方便的进行文字的绘制,一般情况下遇到绘制文字的需求时,我们一般用TextPaint所提供的方法.开始学习如何绘制文字之前,我们必须要先了解下android中文字是怎么绘制到屏幕上的,文字的格式又是怎么样的. 一.FontMetrics 1.1 理论知识 它是一个Paint的内部类,作用是“字体测量”.它里面呢就定义了top,ascent,descent,bottom,leading五个成员变量其他什么也没有,和rect很相似.如果你不信,我们可以去

IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字

概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat)y1 toX:(CGFloat)x2 toY:(CGFloat)y2 context:(CGContextRef)con{ CGContextMoveToPoint(con, x1, y1); CGContextAddLineToPoint(con, x2, y2); CGContextSetLi

CreateJs系列教程之 EaselJs_1_绘制文字(Text)

核心Js代码: var canvas,     stage,     w = window.innerWidth,     h = window.innerHeight; function init() {     //设置canvas属性     canvas = document.getElementById('game');     canvas.width = w;     canvas.height = h;     //创建舞台     stage = new createjs.St

使用canvas与Paint在View中居中绘制文字

本博客只要没有注明"转",那么均为原创,转贴请注明本博客链接链接 我们在自定义View中有的时候会想自己绘制文字,自己绘制文字的时候,我们通常希望把文字精确定位,文字居中(水平.垂直)是普遍的需求,所以这里就以文字居中为例,看一下android中的文字应该如何绘制,它与Java又有什么区别. 先来看看我们的目标,见下图 上图是我打开了"显示布局边界"后截的图,所有会有好多框框. 仔细观察上图文字区域,我们会发现文字区域中有5条颜色不同的线.按着从上到下的顺序,他们的

iOS开发 - Quartz2D绘制小黄人

Quartz2D绘制小黄人 - (void)drawRect:(CGRect)rect { // 1.上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.身体 drawBody(ctx, rect); // 3.嘴(微笑) drawMouth(ctx, rect); // 4.画眼睛 drawEyes(ctx, rect); } /** * 眼睛 */ void drawEyes(CGContextRef ctx, CGRect

在Image控件中绘制文字

//Canvas 在Image控件中绘制文字 procedure TForm1.Button1Click(Sender: TObject);begin  image1.Canvas.Font.Size:= 72; //设置文字大小  image1.Canvas.TextOut(1,1,'Delphi'); //输出文字end; 来自为知笔记(Wiz) 在Image控件中绘制文字

QT使用painter绘制文字时的居中显示

在窗体上绘制文字时,在paintEvent()方法里用QPainter进行绘制. 主要获取对字符串打印在屏幕上时占用的像素大小 QPainter p(this); QFont font("宋体",13,75); p.setFont(font); QString title("标题"); int widthOfTitle = p.fontMetrics().width(title);//字符串显示的像素大小 p.drawText(this->width()/2-

android精确绘制文字位置的方法

android 中使用Canvas的drawText绘制文本的位置,是基于基线的.如下图: 其中字母Q的小尾巴在横线下面了. 怎么样找准字母的中心位置呢? 先看下面的例子:(右边的数字,表示字体的 left, top, right, bottom) 这里面的关键是Paint.getTextBound. getTextBound会填充一个Rect,这个Rect表示的就是一个字的left, top, right, bottom.注意到left和top并不是从0,0开始的. left和right应该是