標籤:
這篇教程主要內容展示如何利用Core Graphics Framework畫圓圈,當使用者點擊螢幕時隨機產生不同大小的圓,這篇教程在Xcode6和iOS8下編譯通過。
開啟Xcode,建立項目選擇Single View Application,Product Name填寫iOS8SwiftDrawingCirclesTutorial,Organization Name和Organization Identifier根據自己填寫,選擇Swift語言與iPhone裝置。
File->New File->iOS->Source -> CocoTouch Class.選擇swift 語言,建立繼承於UIView的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中
編譯運行項目後,點擊螢幕可以看到類似如下效果:
原文:http://www.ioscreator.com/tutorials/drawing-circles-uitouch-ios8-swift
在UITouch事件中畫圓圈-iOS8 Swift基礎教程