mmmmmmmm
//
// AView.m
// AutoLayout
//
// Created by ZhuYi on 16/5/24.
// Copyright © 2016年 ZY. All rights reserved.
//
#import "AView.h"
@implementation AView
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
UIImage *image = [UIImage imageNamed:@"dropdown_anim__0005"];
[image drawInRect:CGRectMake(, , rect.size.width, rect.size.height)];
// [image drawAsPatternInRect:CGRectMake(0, 0, rect.size.width, rect.size.height)];
}
/**
* 画三角形
*/
void drawTriangel(){
//获得当前图形的上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//设置七点
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
// CGContextAddLineToPoint(ctx, 0, 0);
//关闭路径
CGContextClosePath(ctx);
// [[UIColor redColor] setFill];
// [[UIColor redColor] set];
CGContextSetRGBFillColor(ctx, , , , );
CGContextFillPath(ctx);
}
/**
* 画矩形
*/
void drawRect(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddRect(ctx, CGRectMake(, , , ));
// [[UIColor redColor] setStroke];
CGContextSetRGBStrokeColor(ctx, , , , );
CGContextStrokePath(ctx);
}
/**
* 设置状态
*/
void set(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
//设置开头和结尾的样式
CGContextSetLineCap(ctx, kCGLineCapRound);
//设置转折点的样式
CGContextSetLineJoin(ctx, kCGLineJoinRound);
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
CGContextSetLineWidth(ctx, );
CGContextSetRGBStrokeColor(ctx, , , , );
CGContextStrokePath(ctx);
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
CGContextSetRGBStrokeColor(ctx, , , , );
CGContextSetLineWidth(ctx, );
CGContextStrokePath(ctx);
}
/**
* 画椭圆
*/
void ellipse(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(ctx, , , , );
CGContextSetLineWidth(ctx, );
CGContextAddEllipseInRect(ctx, CGRectMake(, , , ));
CGContextStrokePath(ctx);
}
/**
* 画圆弧
*/
void arr(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddArc(ctx, , , , , -M_PI_4, );
CGContextSetLineWidth(ctx, );
CGContextSetRGBStrokeColor(ctx, , , , );
CGContextStrokePath(ctx);
}
/**
* 画圆弧
*/
void cusarr(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
CGContextAddArc(ctx, , , , M_PI_2, M_PI, );
CGContextClosePath(ctx);
CGContextFillPath(ctx);
}
/**
* 画文字
*/
void drawText()
{
// 1.获得上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.画矩形
CGRect cubeRect = CGRectMake(, , , );
CGContextAddRect(ctx, cubeRect);
// 3.显示所绘制的东西
CGContextFillPath(ctx);
// 4.画文字
NSString *str = @"哈哈哈哈Good morning hello hi hi hi hi";
// [str drawAtPoint:CGPointZero withAttributes:nil];
NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
// NSForegroundColorAttributeName : 文字颜色
// NSFontAttributeName : 字体
attrs[NSForegroundColorAttributeName] = [UIColor redColor];
attrs[NSFontAttributeName] = [UIFont systemFontOfSize:];
[str drawInRect:cubeRect withAttributes:attrs];
}
void drawImage()
{
// 1.取得图片
UIImage *image = [UIImage imageNamed:@"me"];
// 2.画
// [image drawAtPoint:CGPointMake(50, 50)];
// [image drawInRect:CGRectMake(0, 0, 150, 150)];
[image drawAsPatternInRect:CGRectMake(, , , )];
// 3.画文字
// NSString *str = @"为xxx所画";
// [str drawInRect:CGRectMake(0, 180, 100, 30) withAttributes:nil];
}
/**
* 矩阵操作和上下文栈
*/
void juzhencaozuo(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
//保存上下文栈
CGContextSaveGState(ctx);
//矩阵操作
CGContextRotateCTM(ctx, M_PI_4 * 0.3);
CGContextScaleCTM(ctx, 0.5, 0.5);
CGContextTranslateCTM(ctx, , );
CGContextAddRect(ctx, CGRectMake(, , , ));
CGContextStrokePath(ctx);
//回复上下文栈
CGContextRestoreGState(ctx);
CGContextAddEllipseInRect(ctx, CGRectMake(, , , ));
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , );
// 矩阵操作
// CGContextScaleCTM(ctx, 0.5, 0.5);
CGContextStrokePath(ctx);
}
/**
* 裁剪
*/
void caijian(){
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
// 0.画圆
CGContextAddEllipseInRect(ctx, CGRectMake(, , , ));
// 裁剪
CGContextClip(ctx);
CGContextFillPath(ctx);
// 1.显示图片
UIImage *image = [UIImage imageNamed:@"me"];
[image drawAtPoint:CGPointMake(, )];
}
/**
* 刷帧
*/
- (void)setRadios:(float)radios{
_radios = radios;
[self setNeedsDisplay];
}
- (void)shuazhen{
) {
self.radios = ;
}
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddArc(ctx, , , self.radios, , M_PI * , );
CGContextStrokePath(ctx);
}
@end
http://www.jianshu.com/p/734b34e82135
mmmmmmmm的更多相关文章
- Android 如何有效的解决内存泄漏的问题
前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCana ...
- what is difference in (int)a,(int&)a,&a,int(&a) ?
This interview question come from a famous communication firm of china. : ) #include <iostream> ...
- JAVA基础学习day13--String、StringBuilder与StringBuffer与包装类
一.String 1.1.String String 类是final修饰的,是顶级类,不可被继承 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" ) ...
- C/C++中float和double的存储结构
int main (int argc, char **argv) { float a = 1.0f; cout <<"(int&)a = "<<(i ...
- Pictures of Ascii Art
简述 指尖上的艺术 - 通过键盘上韵律般的敲敲打打,一幅幅美轮美奂的艺术作品便跃然于屏. 这样的画作,包含了无穷的创意,糅合了现代计算机科技与传统绘画艺术,难道还有比这更令人陶醉的美妙事物吗? 简述 ...
- UIProgressView-初识IOS
好几天没更新了,学的时候太紧,没时间复习了都.今天刚好有时间,多更几个. 今天复习的是UIProgressView,我们常见使用在修改某些属性的时候经常用到,比如透明度,今天我们介绍一个简单的使用例子 ...
- 项目必备!永无 bug 注释
佛祖保佑 永无bug 代码注释 // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`-- ...
- C语言中,float在内存中的储存方式
浮点型变量在计算机内存中占用4字节(Byte),即32-bit. 遵循IEEE-754格式标准. 一个浮点数由2部分组成:底数m 和 指数e. ±mantissa × 2exponent (注意,公式 ...
- GPS坐标转换 百度地图API调用
1 如果GPS输出的值是DD.DDDDDDDD格式的,直接调用地图API的转换函数处理,就可以正常显示2 如果GPS输出的值是DD.MMMMMMMM格式的,就需要先进行分转度处理,然后再调API,就可 ...
随机推荐
- 替换__thread的一种方式,实现TLS功能
TLS是由于多线程编程带来的产物,主要是为了解决线程资源局部化,具体内容网上有很多介绍.有很多地方已经支持了该功能,但有些地方没有,下面是GCC的一些介绍,反正具体看实际使用情况: 5.51 Thre ...
- Java学习笔记——MySQL的安装使用以及SQL语法简介
在 Java 的开发中,数据库的应用是非常必要的,下面,我们为Java对于数据库的应用做一些必要的准备工作.. Java 对数据库的应用统称为 JDBC. JDBC(Java Data Base Co ...
- 前端基于easyui的mvc扩展(续)
前端基于easyui的mvc扩展(续) 回顾及遗留问题 上一篇讲解了基于easyui的mvc扩展的基本实现,已经降低了在mvc内使用easyui的难度,但是仍然还有一些问题: 当我们要给生成的控件设置 ...
- 我的Emacs折腾经验谈(四) 也谈Yasnippet
又是好久没更新了,不过还好,现在慢慢有点感觉了,好长时间不写博客会心里有点感觉欠一点什么东西.觉得每次写了东西都往主页推搞得压力好大,以后就不往网站首页推了,纯留下来供参考,另外就是主要方便从搜索找过 ...
- 37条常用Linux Shell命令组合
序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程, ...
- 正则表达式引擎:nfa的转换规则。
正则表达式引擎:nfa的转换规则. 正则到nfa 前言 在写代码的过程中,本来还想根据龙书上的说明来实现re到nfa的转换.可是写代码的时候发现,根据课本来会生成很多的无用过渡节点和空转换边,需要许多 ...
- 终于说再见了!Google Reader
终于说再见了!Google Reader 投递人 itwriter 发布于 2013-07-02 13:28 评论(5) 有760人阅读 原文链接 [收藏] « » 今天 15:00 左右,Go ...
- STL---基本算法---<stl_algobase.h>概述
通过一个实例来说明这些算法的接口使用: #include <iostream> #include <algorithm> #include <functional> ...
- Haxe2.10到Haxe3,NME到OpenFL的迁移备忘
终于决定正式向Haxe3和OpenFL迁移了,这期间也遇到不少问题,这里总结记录如下: 首先是Haxe3环境 * 因为还想保留Haxe 2.10的环境,因此没有使用官网的Haxe 3安装包,而是下载了 ...
- npm scripts + webpack 实践经验(React、Nodejs)
最近用Webpack+npm scripts+Mongodb+Nodejs+React写了个后台项目,在用Webpack构建过程中遇到了许多坑,就写出来分享一下. 构建工具五花八门,想当年刚学会Gru ...