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文件就 ...
随机推荐
- 面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输 ...
- BZOJ 4305: 数列的GCD( 数论 )
对于d, 记{ai}中是d的倍数的数的个数为c, 那么有: 直接计算即可,复杂度O(NlogN+MlogM) --------------------------------------------- ...
- 使用iscroll4可能会遇到的问题(转:记录)
1.在iscroll4的滚动容器范围内,点击input框.select等表单元素时没有响应这个问题原因在于iscroll需要一直监听用户的touch操作,以便灵敏的做出对应效果,所以它把其余的默认事件 ...
- fiddler---使用方法1--抓取手机app包
1.首先fiddler设置
- VC++ win32 多线程 一边画圆一边画矩形
// WinThreadTest.cpp : Defines the entry point for the application. // #include "stdafx.h" ...
- VC获取精确时间的做法
声明:本文章是我整合网上的资料而成的,其中的大部分文字不是我所为的,我所起的作用只是归纳整理并添加我的一些看法.非常感谢引用到的文字的作者的辛勤劳动,所参考的文献在文章最后我已一一列出. 对关注性能的 ...
- 算法导论 6-2 d叉堆
问题: d叉堆性质与二叉堆相似,但其每个非叶子结点有d个孩子: 1) 如何在一个数组中表示一个d叉堆? 2) 包含n个元素的d叉堆的高度是多少? 3) 给出 EXTRACT-MAX在d叉堆的有效实现, ...
- CocoaPods对于不同Target引入不同的第三方库Podfile的写法
有的时候我们需要建立多个Target来完成不同的测试环境的区分,而多个Target之间可能会有第三方库的不同引用,如果我们在使用CocoaPods管理我们的第三方库的时候,我们就需要思考我们需要如何实 ...
- Raspberry 3安装docker
SD卡制作 准备一张4GB或者以上的micro sd卡,下载系统镜像,例如raspbian-jessie-lite.img,并使用刷机工具,如Pi filler将其写入sd卡,当然也可以使用命令行的d ...
- python之列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 1,比如:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, ...