IOS SWIFT基本画图教程
OS SWIFT基本画图教程
其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考.
首先,建立一个Swift类,继承UIView这个类,然后重写
func drawRect(rect: CGRect)
其次,获取画笔的上下文
var context:CGContextRef = UIGraphicsGetCurrentContext();//获取画笔上下文 CGContextSetAllowsAntialiasing(context, true) //抗锯齿设置
下面我们就可以编写画图形的代码了
1 画点
//画点
CGContextFillEllipseInRect(context, CGRectMake(75, 75, 50, 50))
2 画直线
//画直线
CGContextSetLineWidth(context, 5) //设置画笔宽度
CGContextMoveToPoint(context, 10, 20);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context)
3 画圆
//画圆
CGContextAddEllipseInRect(context, CGRectMake(50,50,100,100)); //画圆
CGContextStrokePath(context) //关闭路径
//通过画弧画圆
//弧度=角度乘以π后再除以180
//角度=弧度除以π再乘以180
CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor) //设置画笔颜色
CGContextAddArc(context, 100, 100, 50, 0, CGFloat(270*M_PI/180), 0) //画弧
CGContextStrokePath(context)//关闭路径
4 画字符串
//画字符串
var str:NSString = "我是吴统威";
str.drawAtPoint(CGPointMake(100, 200), withAttributes: nil);
5 画图片
//画图片
CGContextSetShadow(context, CGSizeMake(3, 3),10)
var img:UIImage = UIImage(named: "8")!;
img.drawAtPoint(CGPointMake(50, 250));
CGContextSetShadow(context, CGSizeMake(0, 0), 0)
6 使用PATH画图
//使用path画图
let p1:CGMutablePathRef = CGPathCreateMutable();
CGPathMoveToPoint(p1, nil, 50, 250)
CGPathAddLineToPoint(p1, nil, 50, 350)
CGContextAddPath(context, p1)
CGContextStrokePath(context)//关闭路径
这里主要是介绍基本的用法,其他复杂的图形,可以参照API文档,去调用相关的方法,画出自己想要的图形
附完整代码:
//
// DrawingView.swift
// study
//
// Created by Tonway on 15/2/2.
// Copyright (c) 2015年 Tonway. All rights reserved.
// import UIKit class DrawingView: UIView {
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
var context:CGContextRef = UIGraphicsGetCurrentContext();//获取画笔上下文
CGContextSetAllowsAntialiasing(context, true) //抗锯齿设置
//画点
//CGContextSetLineWidth(context, 50);
CGContextFillEllipseInRect(context, CGRectMake(75, 75, 50, 50))
CGContextSetLineWidth(context, 5) //设置画笔宽度
//画直线
CGContextMoveToPoint(context, 10, 20);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context)
//画圆
CGContextAddEllipseInRect(context, CGRectMake(50,50,100,100)); //画圆
CGContextStrokePath(context) //关闭路径
//通过画弧画圆
//弧度=角度乘以π后再除以180
//角度=弧度除以π再乘以180
CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor) //设置画笔颜色
CGContextAddArc(context, 100, 100, 50, 0, CGFloat(270*M_PI/180), 0) //画弧
CGContextStrokePath(context)//关闭路径
//画字符串
var str:NSString = "我是吴统威";
str.drawAtPoint(CGPointMake(100, 200), withAttributes: nil);
//画图片
CGContextSetShadow(context, CGSizeMake(3, 3),10)
var img:UIImage = UIImage(named: "8")!;
img.drawAtPoint(CGPointMake(50, 250));
// CGContextDrawImage(context, CGRectMake(100, 250, 100, 100),img.CGImage)
CGContextSetShadow(context, CGSizeMake(0, 0), 0)
//使用path画图
let p1:CGMutablePathRef = CGPathCreateMutable();
CGPathMoveToPoint(p1, nil, 50, 250)
CGPathAddLineToPoint(p1, nil, 50, 350)
CGContextAddPath(context, p1)
CGContextStrokePath(context)//关闭路径
}
}
效果图

本文属于吴统威的博客原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=85
IOS SWIFT基本画图教程的更多相关文章
- Apple Swift编程语言入门教程
Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 ...
- ios Swift 之github
1. 软件类 a) 作者集合 http://nondot.org/sabre/ b) swift for facebook SWIFT是一个易于使用的,基于注解的Java来创建勤俭节约序列化类型和服务 ...
- ios Swift 资源池
Swift入门教程: http://www.cocoachina.com/applenews/devnews/2014/0604/8661.html Swift视频教程: http://www.coc ...
- 苹果Swift编程语言新手教程【中国版】
Swift代码语言教程:在刚刚过去的WWDC2014大会上,苹果公司新公布了一种编程语言Swift.据悉.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.对于广 ...
- iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...
- iOS 9应用开发教程之多行读写文本ios9文本视图
iOS 9应用开发教程之多行读写文本ios9文本视图 多行读写文本——ios9文本视图 文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示.在此图中字符串“说点什么吧 ...
- iOS 9应用开发教程之显示编辑文本标签文本框
iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ...
- iOS 9应用开发教程之使用代码添加按钮美化按钮
iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...
- iOS 9应用开发教程之编辑界面与编写代码
iOS 9应用开发教程之编辑界面与编写代码 编辑界面 在1.2.2小节中提到过编辑界面(Interface builder),编辑界面是用来设计用户界面的,单击打开Main.storyboard文件就 ...
随机推荐
- Android 开发笔记 “Sqlite Cursor 使用”
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈, ...
- python列表元组
python列表元组 索引 切片 追加 删除 长度 循环 包含 定义一个列表 my_list = [] my_list = list() my_list = ['Michael', ' ...
- git版本控制的笔记
一.配置你的身份,提交代码时git就可以知道是谁提交的了 git config --global user.name "Tony" git config --global user ...
- float编码杂谈
浮点数的编码转换采用的是IEEE规定的编码标准,float和double 这两种类型的数据的转换原理相同,但是由于范围不一样,编码方式有些区别.IEEE规定的编码会将一个浮点数转换为二进制数.以科学计 ...
- android开发环境安装记录
首先进入http://developer.android.com/sdk/index.html, Google提供了一个新的DeveloperTools,即:ADT Bundle,中文翻译之:ADT捆 ...
- win7 原版下载&激活
参考http://bbs.ithome.com/thread-478939-1-1.html品牌机 win7 32 位系下载http://bbs.ithome.com/forum.php?mod=vi ...
- 射频识别技术漫谈(13)——Mifare S50与Mifare S70
Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...
- 在原有3306端口mysqld服务的情况再搭建第二个3308端口的mysql实例
1 download the tar.gz [root@472322 tmp]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6 ...
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
题目 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MB Description 贝 ...
- D - 金樽清酒斗十千(搜索dfs)
D - 金樽清酒斗十千 Time Limit:2000MS Memory Limit:524288KB 64bit IO Format:%I64d & %I64u Submit ...