在UITouch事件中畫圓圈-iOS8 Swift基礎教程

來源:互聯網
上載者:User

標籤:

這篇教程主要內容展示如何利用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 語言,建立繼承於UIViewCirleView類,如

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基礎教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.