iOS开发UI篇—Quartz2D简单使用(二)

时间:2021-10-26 03:03:52

iOS开发UI篇—Quartz2D简单使用(二)

一、画文字

代码:

 //
// YYtextview.m
// 04-写文字
//
// Created by 孔医己 on 14-6-10.
// Copyright (c) 2014年 itcast. All rights reserved.
// #import "YYtextview.h" @implementation YYtextview - (void)drawRect:(CGRect)rect
{ // 画文字
NSString *str = @"的额搜风搜分手了粉色发俄双方说法offFF瓦房你F回复F入会费WFH;飞;FN返回WFH;哦发货;F回复;FHISFHSIFH我皮肤好APIFRHi分红AWFHIOF威锋网i"; // 1.获取上下文
// CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.绘图
// 不推荐使用C语言的方法绘制文字, 因为quraz2d中的坐标系和UIkit中的坐标系不一致, 绘制出来的文字是颠倒的, 而且通过C语言的方法绘制文字相当麻烦
// CGContextSelectFont(<#CGContextRef c#>, <#const char *name#>, <#CGFloat size#>, <#CGTextEncoding textEncoding#>)
// CGContextShowText(ctx, <#const char *string#>, <#size_t length#>) // 绘制矩形
// 1.获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.绘图
CGContextAddRect(ctx, CGRectMake(, , , ));
// 3.渲染
CGContextStrokePath(ctx); // NSMutableDictionary *md = [NSMutableDictionary dictionary];
// // 设置文字颜色
// md[NSForegroundColorAttributeName] =[UIColor redColor];
// // 设置文字背景颜色
// md[NSBackgroundColorAttributeName] = [UIColor greenColor];
// // 设置文字大小
// md[NSFontAttributeName] = [UIFont systemFontOfSize:20]; // 将文字绘制到指点的位置
// [str drawAtPoint:CGPointMake(10, 10) withAttributes:md]; // 将文字绘制到指定的范围内, 如果一行装不下会自动换行, 当文字超出范围后就不显示
[str drawInRect:CGRectMake(, , , ) withAttributes:nil];
} @end

效果:

iOS开发UI篇—Quartz2D简单使用(二)

二、图片

代码1:

 //
// YYimage.m
// 04-写文字
//
// Created by 孔医己 on 14-6-10.
// Copyright (c) 2014年 itcast. All rights reserved.
// #import "YYimage.h" @implementation YYimage - (void)drawRect:(CGRect)rect
{ // 1.加载图片到内存中
UIImage *image = [UIImage imageNamed:@"me"]; // 利用drawAsPatternInRec方法绘制图片到layer, 是通过平铺原有图片
[image drawAsPatternInRect:CGRectMake(, , , )];
} @end

效果(平铺):

iOS开发UI篇—Quartz2D简单使用(二)

代码2:

 #import "YYimage.h"

 @implementation YYimage

 - (void)drawRect:(CGRect)rect
{ // 1.加载图片到内存中
UIImage *image = [UIImage imageNamed:@"me"]; // 利用OC方法将图片绘制到layer上 // 利用drawInRect方法绘制图片到layer, 是通过拉伸原有图片
[image drawInRect:CGRectMake(, , , )]; // 利用drawAsPatternInRec方法绘制图片到layer, 是通过平铺原有图片
// [image drawAsPatternInRect:CGRectMake(0, 0, 320, 480)];
} @end

效果(拉伸图片):

iOS开发UI篇—Quartz2D简单使用(二)

代码3:

 //
// YYimage.m
// 04-写文字
//
// Created by 孔医己 on 14-6-10.
// Copyright (c) 2014年 itcast. All rights reserved.
// #import "YYimage.h" @implementation YYimage - (void)drawRect:(CGRect)rect
{ // 1.加载图片到内存中
UIImage *image = [UIImage imageNamed:@"me"]; // 利用OC方法将图片绘制到layer上 // 将图片绘制到指定的位置
[image drawAtPoint:CGPointMake(, )];
}

效果(把图片绘制到一个固定的位置):

iOS开发UI篇—Quartz2D简单使用(二)

iOS开发UI篇—Quartz2D简单使用(二)的更多相关文章

  1. iOS开发UI篇—Quartz2D简单介绍

    iOS开发UI篇—Quartz2D简单介绍 一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\ ...

  2. iOS开发UI篇—Quartz2D简单使用&lpar;一&rpar;

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: // // YYlineview.m // 03-画直线 // // Created by apple on 14-6-9. // ...

  3. iOS开发UI篇—Quartz2D简单使用(三)

    iOS开发UI篇—Quartz2D简单使用(三) 一.通过slider控制圆的缩放 1.实现过程 新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联. 界 ...

  4. iOS开发UI篇—Quartz2D简单使用(一)

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: 1 // 2 // YYlineview.m 3 // 03-画直线 4 // 5 // Created by apple on ...

  5. iOS开发UI篇—Quartz2D使用(绘制基本图形)

    iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...

  6. iOS开发UI篇—Quartz2D使用(图形上下文栈)

    iOS开发UI篇—Quartz2D使用(图形上下文栈) 一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后, ...

  7. iOS开发UI篇—Quartz2D使用(绘图路径)

    iOS开发UI篇—Quartz2D使用(绘图路径) 一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径  cgmutablepat ...

  8. iOS开发UI篇—Quartz2D使用&lpar;信纸条纹&rpar;

    iOS开发UI篇—Quartz2D使用(信纸条纹) 一.前导程序 新建一个项目,在主控制器文件中实现以下几行代码,就能轻松的完成图片在视图中的平铺. #import "YYViewContr ...

  9. iOS开发UI篇—Quartz2D使用(截屏)

    iOS开发UI篇—Quartz2D使用(截屏) 一.简单说明 在程序开发中,有时候需要截取屏幕上的某一块内容,比如捕鱼达人游戏.如图: 完成截屏功能的核心代码:- (void)renderInCont ...

随机推荐

  1. &lbrack;LeetCode&rsqb; 76&period; Minimum Window Substring 解题思路

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  2. tcmalloc源码剖析的资料

    1. https://seanhn.wordpress.com/2011/04/14/exploit-necromancy-in-tcmalloc-reviving-the-4-to-n-byte-o ...

  3. 解决visual studio空格变成很多点号的3种方法

    在用visual studio做网站时不知道按了什么快捷键,所有页面上的空格都变成了点号,就像下图那样. 要解决空格变点号的方法有两种:1.编辑->高级->查看空白2.Ctrl+E 然后按 ...

  4. crawler&lowbar;分布式网络爬虫的设计与实现&lowbar;设计图

    一.集中调度式 二.p2p 三.混合调度式 四.大型集群

  5. TCP跟UDP乱侃

    原文链接http://www.cnblogs.com/xiaoEight/archive/2013/02/19/2917814.html 由于最近在恶补关于网络编程的东西,所以决定做个简单的记录.之前 ...

  6. NOIP模拟&colon;切蛋糕&lpar;数学欧拉函数&rpar;

    题目描述  BG 有一块细长的蛋糕,长度为 n. 有一些人要来 BG 家里吃蛋糕, BG 把蛋糕切成了若干块(整数长度),然后分给这些人. 为了公平,每个人得到的蛋糕长度和必须相等,且必须是连续的一段 ...

  7. P1540 机器翻译 模拟

    题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...

  8. 实现DIV层内的文字垂直居中&lpar;转&rpar;

    有时候,为了网页设计的美观,需要把div+css设计的页面里的某些div层里的文字垂直居中,包括多行文字以及单行文字:方法有不少,但真正能实现而代码又简洁的介绍不多,flymorn就为大家介绍几种适用 ...

  9. transition&lpar;过渡&rpar;

    transition:过渡 渡过渡原理:原始状态a状态-向-最终结束状态b状态 格式:transition: all 1s linear; 过渡的四个参数: 1.参与过渡的属性(属性(width)/a ...

  10. &lpar;转&rpar;在ASP&period;NET MVC3 中利用Jsonp跨域访问

    原文地址:http://www.cnblogs.com/skm-blog/p/3431999.html 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用 ...