博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在UITouch事件中画圆圈-iOS8 Swift基础教程
阅读量:6320 次
发布时间:2019-06-22

本文共 1937 字,大约阅读时间需要 6 分钟。

这篇教程主要内容展示如何利用Core Graphics Framework画圆圈,当用户点击屏幕时随机生成不同大小的圆,这篇教程在Xcode6和iOS8下编译通过。

打开Xcode,新建项目选择Single View Application,Product Name填写iOS8SwiftDrawingCirclesTutorial,Organization Name和Organization Identifier根据自己填写,选择语言与iPhone设备。

iOS8SwiftDrawingCirclesTutorial

File->New File->iOS->Source -> CocoTouch Class.选择swift 语言,创建继承于UIViewCirleView类,如下图

CirleView

CircleView中增加如下init 方法:

override init(frame: CGRect) {    super.init(frame: frame) self.backgroundColor = UIColor.clearColor() } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }

将cirecle view的背景颜色清除掉,这样多个圆圈可以相互重叠在一起,下面实现drawRect方法:

override func drawRect(rect: CGRect) {     // Get the Graphics Context var context = UIGraphicsGetCurrentContext(); // Set the circle outerline-width CGContextSetLineWidth(context, 5.0); // Set the circle outerline-colour UIColor.redColor().set() // Create Circle CGContextAddArc(context, (frame.size.width)/2, frame.size.height/2, (frame.size.width - 10)/2, 0.0, CGFloat(M_PI * 2.0), 1) // Draw CGContextStrokePath(context); }

drawRect方法中,我们将圆圈的边框线设置为5并居中显示,最后调用CGContextStrokePath画出圆圈.现在我们打开ViewController.swift文件,在viewDidLoad方法中将背景颜色设置为ligthgray.

override func viewDidLoad() {  super.viewDidLoad()  self.view.backgroundColor = UIColor.lightGrayColor() }

现在当用户点击屏幕时我们需要创建一个cirecle view,接下来在ViewController.swift中重载touchesBegan:withEvent方法中实现

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { // loop through the touches for touch in touches { // Set the Center of the Circle // 1 var circleCenter = touch.locationInView(view) // Set a random Circle Radius // 2 var circleWidth = CGFloat(25 + (arc4random() % 50)) var circleHeight = circleWidth // Create a new CircleView // 3 var circleView = CircleView(frame: CGRectMake(circleCenter.x, circleCenter.y, circleWidth, circleHeight)) view.addSubview(circleView) } }
  • 1.circle圆圈设置在用户的点击位置
  • 2.circle高度与宽度随机产生,数值在25-75之间
  • 3.创建circleView并添加至main view中

编译运行项目后,点击屏幕可以看到类似如下效果:

circleView

原文:

转载地址:http://qwcaa.baihongyu.com/

你可能感兴趣的文章
mysql benchmark基准测试
查看>>
JS获取中文拼音首字母,并通过拼音首字母高速查找页面内的中文内容
查看>>
Android studio多个项目之间怎么实现快速切换?
查看>>
WIN7 以下创建cocos2d-x3.0+lua项目
查看>>
如何安装Git到MAC OS X
查看>>
一次性将多个文件夹批处理压缩成多个.rar
查看>>
django之创建第7-2个项目-url配置分离
查看>>
SourceTree - 正在检查源... When cloning a repository, "Checking Source" spins forever
查看>>
基于android studio的快捷开发(将持续更新)
查看>>
json序列化时datetime的处理方法
查看>>
Mesos源码分析(1): Mesos的启动过程总论
查看>>
iOS开发UI篇—常见的项目文件介绍
查看>>
python2.0_day21_web聊天室一
查看>>
MySQL server has gone away 问题的解决方法
查看>>
使用BeanUtils设置属性转换String到Date类型
查看>>
C# DateTime和String转换
查看>>
js判断函数是否存在、判断是否为函数
查看>>
动态sql
查看>>
UVA 10564 Paths through the Hourglass[DP 打印]
查看>>
洛谷P1119 灾后重建[Floyd]
查看>>