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基本画图教程的更多相关文章

  1. Apple Swift编程语言入门教程

    Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1   简介 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 ...

  2. ios Swift 之github

    1. 软件类 a) 作者集合 http://nondot.org/sabre/ b) swift for facebook SWIFT是一个易于使用的,基于注解的Java来创建勤俭节约序列化类型和服务 ...

  3. ios Swift 资源池

    Swift入门教程: http://www.cocoachina.com/applenews/devnews/2014/0604/8661.html Swift视频教程: http://www.coc ...

  4. 苹果Swift编程语言新手教程【中国版】

    Swift代码语言教程:在刚刚过去的WWDC2014大会上,苹果公司新公布了一种编程语言Swift.据悉.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.对于广 ...

  5. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  6. iOS 9应用开发教程之多行读写文本ios9文本视图

    iOS 9应用开发教程之多行读写文本ios9文本视图 多行读写文本——ios9文本视图 文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示.在此图中字符串“说点什么吧 ...

  7. iOS 9应用开发教程之显示编辑文本标签文本框

    iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ...

  8. iOS 9应用开发教程之使用代码添加按钮美化按钮

    iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...

  9. iOS 9应用开发教程之编辑界面与编写代码

    iOS 9应用开发教程之编辑界面与编写代码 编辑界面 在1.2.2小节中提到过编辑界面(Interface builder),编辑界面是用来设计用户界面的,单击打开Main.storyboard文件就 ...

随机推荐

  1. 下载文件 ,调用系统的方法(UIDocumentInteractionController) 查看

  2. IOS实现UIButton图文混排、自定义按钮按下和正常状态下不同的背景颜色、根据文字长度自定义UIButton长度

    在一些项目中,我们需要自定义自己的UIButton,使Button上面同时具有图片和文字描述,实现自定义UIButton的图文混排. 首先我们需要定义一个继承自UIButton的类,同时实现自己的in ...

  3. window.parent与window.opener的区别与使用

    window.parent 是iframe页面调用父页面对象 举例: a.html 如果我们需要在b.html中要对a.html中的username文本框赋值(就如很多上传功能,上传功能页在ifrma ...

  4. [Jobdu] 题目1517:链表中倒数第k个结点

    给出一个链表的头指针,要求找到倒数第k个节点,并输出这个节点的值 例子: 先看一个例子,链表为:1 2 3 4 5 6,倒数第2个节点就是5,倒数第一个节点就是6,以此类推.这里的链表有头节点,就是说 ...

  5. Java学习之内部类

    示例1: package com.swust.面向对象; class Person1{ private String username="zhangsan"; public Per ...

  6. JAVA 对象内存分析

    1.jmap -heap pid 或者 jmap -histo pid 2.jmap -dump:file=folder/dumpFileName.txt,format=b pid 3.对3的输出文件 ...

  7. jQuery常用方法集锦

    用方法:http://www.cnblogs.com/linzheng/archive/2010/11/14/1877092.html 数组汇总:http://www.cnblogs.com/Andy ...

  8. 哈希长度扩展攻击的简介以及HashPump安装使用方法

    哈希长度扩展攻击(hash length extension attacks)是指针对某些允许包含额外信息的加密散列函数的攻击手段.该攻击适用于在消息与密钥的长度已知的情形下,所有采取了 H(密钥 ∥ ...

  9. selenium + python自动化测试环境搭建--亲测

    环境准备: 1.下载所学安装包: setuptools https://pypi.python.org/packages/2.7/s/setuptools/ selenium https://pypi ...

  10. 【android开发】小说阅读器

    新人开发理念 1 activity 是每个功能页面的入口 2 动画效果需要配合资源文件中,动画的定义 3 文件的读取是有权限控制的 4 布局应该尽量简单,这样才能让程序跑的飞快 前记 重新开始一个新的 ...