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

這篇教程主要內容展示如何利用Core Graphics Framework畫圓圈,當用戶點擊屏幕時隨機生成不同大小的圓,這篇教程在Xcode6和iOS8下編譯通過。

打開Xcode,新建項目選擇Single View Application,Product Name填寫iOS8SwiftDrawingCirclesTutorial,Organization Name和Organization Identifier根據自己填寫,選擇Swift語言與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://www.ioscreator.com/tutorials/drawing-circles-uitouch-ios8-swift

轉載于:https://www.cnblogs.com/Free-Thinker/p/4946904.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397307.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397307.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397307.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

瀏覽器兼容性問題

轉載于:https://www.cnblogs.com/python-machine/p/9406084.html

sql server 2005 (select查詢語句用法)

select * from userInfo where age like 2[25]功能:查詢userInfo表中age字段,所有以2開頭,且第二位是2或5的記錄。select * from userInfo where name like _娜_功能:查詢userInfo表中name(char(6))字段所有…

有人在遠程使用計算機是什么意思,如何遠程控制計算機,計算機遠程控制有什么用途...

對于每個人來說,計算機都是至關重要的家用電器. 因為使用計算機可以使我們的業余生活豐富多彩. 隨著Internet的普及,越來越多的用戶開始學習自己使用計算機. 但是,操作中仍然存在很多問題,只要每個人都學會了遠程控制,…

圖學java基礎篇之IO

java io體系 如圖可以看出,java的io按照包來劃分的話可以分為三大塊:io、nio、aio,但是從使用角度來看,這三塊其實揉雜在一起的,下邊我們先來概述下這三塊: io:主要包含字符流和字節流,我們常用…

boot界面上下鍵調節鍵不能動_為什么電腦一開機就自動進入BIOS界面

電腦故障的問題表現形式很多,比如說為什么電腦藍屏,為什么電腦一開機就自動進入BIOS界面等。這些問題往往另很多網友不知所措。今天小編就針對電腦一開機就自動進入BIOS界面的問題,教下大家具體的解決方法。1、你的BIOS電池沒有電了。解決方法…

ArcEngine數據刪除幾種方法和性能比較

轉自原文 ArcEngine數據刪除幾種方法和性能比較 一、 幾種刪除方法代碼 1. 查詢結果中刪除 private void Delete1(IFeatureClass PFeatureclass) { IQueryFilter pQueryFilter new QueryFilterClass(); pQueryFilter.WhereClause "objectID<" DeleteNum; IFe…

計算機組成原理中英對照篇,信息科學系課程介紹(中英對照).doc

文檔介紹&#xff1a;信息科學系課程介紹(中英對照)序號:1課程編碼:14001010課程名稱:計算機基礎學分:1周學時:2開課系部:信息科學系預修課程:無修讀對象:信息管理與信息系統專業本科生課程簡介:主要介紹計算機發展歷史、常用操作系統、辦公和其它應用軟件、等內容。通過本課程…

句子相似度--余弦相似度算法的實現

1、余弦相似度余弦距離&#xff0c;也稱為余弦相似度&#xff0c;是用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量。余弦值越接近1&#xff0c;就表明夾角越接近0度&#xff0c;也就是兩個向量越相似&#xff0c;這就叫"余弦相似性"。 上圖兩…

python之模塊calendar(匯集了日歷相關的操作)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #calendar日歷模塊import calendar#3個大類&#xff1a; calendar.Calendar(firstweekday0) calendar.TextCalendar(firstweekday0) calendar.HTMLCalendar(firstweekday0)#返回某月日歷 cal calendar.month(2011, 11) print ca…

紅帽436——HA高可用集群之概念篇

一、集群概念&#xff1a;集群&#xff1a;提高性能&#xff0c;降低成本&#xff0c;提高可擴展性&#xff0c;增強可靠性&#xff0c;任務調度室集群中的核心技術。集群作用:保證業務不斷 集群三種網絡&#xff1a;業務網絡,集群網絡,存儲網絡 二、集群三種類型&#xff1a;…

計算機網絡的構成教學反思,《計算機網絡知識》教學反思.doc

文檔介紹&#xff1a;《計算機網絡知識》教學反思本課時以理論性內容為主,在日常教學過程中往往會以課本宣讀為主,很難引起學生的學****興趣。然而在教學中若能夠合理的采用多種教學方式,做到理論聯系實際,將達到良好的教學效果。我在本節課教學中,以我校的校園網為模型,充分利…

按季度分類匯總_2019年純堿行業相關上市公司季報 與半年報情況匯總

2019年純堿行業相關上市公司季報與半年報情況匯總經百川盈孚統計&#xff0c;目前純堿行業相關上市公司共計11家(包含三家ST股)&#xff0c;已經全部公布2019年一季度報告。2019年上半年度報告僅五家公司公布&#xff0c;其中包含&#xff1a;大連大化、山東海化、華昌化工、湖…

抖音C#版,自己抓第三方抖音網站

感謝http://dy.lujianqiang.com技術支持 文章更新&#xff1a;http://dy.lujianqiang.com這個服務器已經關了&#xff0c;現在沒用了 版權歸抖音公司所有&#xff0c;該博客只是為交流學習所使用,編譯后的內容將24小時內刪除 該程序所獲取到的內容或視頻歸Beijing Microlive Vi…

linux命令-vim命令模式

編輯模式下 按 “esc” 進去命令模式 &#xff1a;wq 保存并退出 &#xff1a;w 保存 已寫入 &#xff1a;q&#xff01;不保存強制退出 &#xff1a;wq&#xff01; 強制保存退出 &#xff1a;set nu 顯示行號 &#xff1a;set nonu 去掉行號 &#xff1a;nohl 取消高亮 /字…

ai在計算機教學中的應用,淺談人工智能在教育中的應用

淺談人工智能在教育中的應用孫立友摘要&#xff1a;隨著人工智能技術的進步&#xff0c;以及研究的深入和在教育領域的逐步推廣&#xff0c;對教育領域產生了深遠的影響。人工智能對于彌補當前教育存在的種種缺陷和不足&#xff0c;推動教育發展改革和教學現代化進程起著越來越…

TCP 和 UDP

TCP/IP五層網絡結構模型 物理層&#xff1a;物理層建立在物理通信介質的基礎上&#xff0c;作為系統和通信介質的接口&#xff0c;用來實現數據鏈路實體間透明的比特 (bit) 流傳輸。只有該層為真實物理通信&#xff0c;其它各層為虛擬通信 數據鏈路層:在物理層提供比特流服務的…

sapmto生產模式配置及操作詳解_硬巖制砂線怎么設計?300t/h的生產流程與設備配置詳解...

點擊上方“藍字”關注我們說到硬巖&#xff0c;花崗巖、輝綠巖都不陌生&#xff0c;關于花崗巖的生產線配置小編曾介紹過&#xff0c;感興趣的可直接點閱&#xff1a;《硬質巖破碎很發愁&#xff1f;從原料到成品&#xff0c;看花崗巖的破碎制砂生產線配置》《年產300萬t花崗巖…

公交卡軟件測試思路,中國移動NFC專用SIM卡測試過程介紹

近期&#xff0c;通訊運營商在NFC的應用領域邁出了一大步&#xff0c;消費者在北京乘坐地鐵、公交以及其他支持市政一卡通消費的場所均可進行手機支付。接下來就從辦卡開始&#xff0c;為大家詳細介紹一下中國移動NFC手機錢包的實測過程。辦理手機NFC支付業務想要刷手機消費除了…

Java 集合系列目錄(Category)

Java 集合系列目錄(Category) 轉自&#xff1a;Java 集合系列目錄(Category) 01. Java 集合系列01之 總體框架 02. Java 集合系列02之 Collection架構 03. Java 集合系列03之 ArrayList詳細介紹(源碼解析)和使用示例 04. Java 集合系列04之 fail-fast總結(通過ArrayList來說明f…

spring的applicationContext.xml如何自動加載

一個web工程自動加載的配置文件只有web.xml&#xff0c;想要加載其他.xml必須在web.xml里面進行配置。 用spring的時候需要一個bean容器來管理所有的bean&#xff0c;所有bean默認是寫在applicationContext.xml里的&#xff0c;在web.xml里面是這么設置的&#xff0c; 1 <co…