swift3畫直線 - SpriteKit畫線

一脆贵、Core Graphics介紹

1. 什么是Core Graphics

(1)Core Graphics Framework 是一套基于 C 的 API 框架湖笨,使用了 Quartz 作為繪圖引擎,可用于一切繪圖操作。它提供了低級(jí)別形帮、輕量級(jí)、高保真度的 2D 渲染矩肩。(2)Quartz 2D 是 Core Graphics Framework 的一部分秸谢,是一個(gè)強(qiáng)大的二維圖像繪制引擎。(3)我們使用的 UIKit 庫中所有 UI 組件其實(shí)都是由 CoreGraphics 繪制實(shí)現(xiàn)的量九。所以使用 Core Graphics 可以實(shí)現(xiàn)比 UIKit 更底層的功能适掰。(4)當(dāng)我們引入 UIKit 框架時(shí)系統(tǒng)會(huì)自動(dòng)引入 Core Graphics 框架颂碧,同時(shí)在 UIKit 內(nèi)部還對(duì)一些常用的繪圖 API 進(jìn)行了封裝,方便我們使用类浪。 (比如:CGMutablePath 是 Core Graphics 的底層API载城,而 UIBezierPath 就是對(duì) CGMutablePath 的封裝。)

2. 繪圖的一般步驟

(1)獲取繪圖上下文
(2)創(chuàng)建并設(shè)置路徑
(3)將路徑添加到上下文
(4)設(shè)置上下文狀態(tài)(如筆觸顏色费就、寬度诉瓦、填充色等等)
(5)繪制路徑

二、繪制直線

import UIKit
 
class ViewController: UIViewController {
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        let frame = CGRect(x: 30, y: 30, width: 250, height: 100)
        let cgView = CGView(frame: frame)
        self.view.addSubview(cgView)
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
 
class CGView:UIView {
     
    override init(frame: CGRect) {
        super.init(frame: frame)
        //設(shè)置背景色為透明力细,否則是黑色背景
        self.backgroundColor = UIColor.clear
    }
     
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
     
    override func draw(_ rect: CGRect) {
        super.draw(rect)
         
        //獲取繪圖上下文
        guard let context = UIGraphicsGetCurrentContext() else {
            return
        }
         
        //創(chuàng)建一個(gè)矩形睬澡,它的所有邊都內(nèi)縮3
        let drawingRect = self.bounds.insetBy(dx: 3, dy: 3)
         
        //創(chuàng)建并設(shè)置路徑
        let path = CGMutablePath()
        path.move(to: CGPoint(x:drawingRect.minX, y:drawingRect.minY))
        path.addLine(to:CGPoint(x:drawingRect.maxX, y:drawingRect.minY))
        path.addLine(to:CGPoint(x:drawingRect.maxX, y:drawingRect.maxY))
         
        //添加路徑到圖形上下文
        context.addPath(path)
         
        //設(shè)置筆觸顏色
        context.setStrokeColor(UIColor.orange.cgColor)
        //設(shè)置筆觸寬度
        context.setLineWidth(6)
         
        //繪制路徑
        context.strokePath()
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市艳汽,隨后出現(xiàn)的幾起案子猴贰,更是在濱河造成了極大的恐慌,老刑警劉巖河狐,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件米绕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡馋艺,警方通過查閱死者的電腦和手機(jī)栅干,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捐祠,“玉大人碱鳞,你說我怎么就攤上這事□庵” “怎么了窿给?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)率拒。 經(jīng)常有香客問我崩泡,道長(zhǎng),這世上最難降的妖魔是什么猬膨? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任角撞,我火速辦了婚禮,結(jié)果婚禮上勃痴,老公的妹妹穿的比我還像新娘谒所。我一直安慰自己,他們只是感情好沛申,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布劣领。 她就那樣靜靜地躺著,像睡著了一般铁材。 火紅的嫁衣襯著肌膚如雪剖踊。 梳的紋絲不亂的頭發(fā)上庶弃,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音德澈,去河邊找鬼歇攻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梆造,可吹牛的內(nèi)容都是我干的缴守。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼镇辉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼屡穗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忽肛,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤村砂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屹逛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體础废,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年罕模,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了评腺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淑掌,死狀恐怖蒿讥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抛腕,我是刑警寧澤芋绸,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站担敌,受9級(jí)特大地震影響摔敛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柄错,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一舷夺、第九天 我趴在偏房一處隱蔽的房頂上張望苦酱。 院中可真熱鬧售貌,春花似錦、人聲如沸疫萤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扯饶。三九已至恒削,卻和暖如春池颈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钓丰。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工躯砰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人携丁。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓琢歇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梦鉴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子李茫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作為繪圖引擎肥橙。它提供了低...
    ShanJiJi閱讀 1,522評(píng)論 0 20
  • 前言:對(duì)《iOS開發(fā)系列--打造自己的“美圖秀秀”》文章做了整理如果對(duì)于CGPaht 或CGContextPath...
    LiYaoPeng閱讀 8,373評(píng)論 4 41
  • 你這么美 這么美 這么美 美 美 美 ~
    一微小閱讀 114評(píng)論 0 0
  • “我拒絕魄宏。” 當(dāng)這三個(gè)字自牧塵的嘴中傳出來時(shí)存筏,所有人都是能夠見到宠互,那霍風(fēng)的眼神,一點(diǎn)點(diǎn)的冷厲下來方篮,一股驚人的靈力波...
    混沌天書閱讀 217評(píng)論 0 0
  • 如果有人問:"世界上最好吃名秀、最著名的早餐是什么?” 樂昌人都會(huì)說:“樂昌早餐店的豬腳扣肉粉藕溅!”生于斯長(zhǎng)于斯...
    張癸恩閱讀 683評(píng)論 1 2