畫板
搭建界面
- 頂部view
- UIToolbar,會自動對里面的控件做自動布局
- 在toolbar里面拖入item
- 保存按鈕在最右側(cè)Flexible Space
- 隱藏狀態(tài)欄:prefersStatusBarHidden YES
- 底部view
- ios9之后才出來的StackView
- 在stackview里面添加button
- stackView屬性
- distribution:fillEqually
- spacing 20
畫圖
- 綁定drawView
- 添加手勢Pan _ awakeFromNib
- pan手勢方法里面畫線
- 判斷手勢狀態(tài)
- begin:
- 創(chuàng)建路徑,搞一個(gè)成員屬性偿乖,保存路徑(能不能寫在awakeFromNib中构资?--可以,一個(gè)路徑可以描述多條線-->但是速客,一個(gè)路徑只能對應(yīng)一個(gè)狀態(tài)叠赐,示例程序里每一個(gè)路徑都是不同的狀態(tài))
- 獲取當(dāng)前手指的點(diǎn)
- moveToPoint
- change:
- 添加線到手指所在的點(diǎn)
- begin:
- 判斷手勢狀態(tài)
- 搞一個(gè)數(shù)組欲账,記錄繪制的所有路徑
設(shè)置線的狀態(tài)屬性
- 清屏屡江、撤銷、橡皮擦赛不、選擇顏色惩嘉、設(shè)置線寬(應(yīng)該寫到畫板里面)
- 在畫板內(nèi)部提供方法,誰的事情誰來處理
-
清屏
- 清空數(shù)組self.pathArray removeAllObjects
- 重繪 setNeedsDisplay
-
撤銷
- 刪除數(shù)組中最后一個(gè)元素
- 重繪
-
設(shè)置顏色
- 顏色只能在drawRect方法里面設(shè)置
- 自定義路徑
- 定義一個(gè)屬性,記錄當(dāng)前路徑的顏色
- drawView
- 定義顏色屬性
- drawRect:繪制顏色
-
設(shè)置線寬
- 下一次手指開始拖動的路徑
- 定義一個(gè)成員屬性lineWidth
- 設(shè)置默認(rèn)線寬為1
- 線的連接樣式j(luò)oinRound
- 設(shè)置頂角樣式CapStyle:Round
-
橡皮擦
- setColor whiteColor
保存照片到系統(tǒng)相冊
- 把繪制的內(nèi)容保存到系統(tǒng)相冊中
- 對畫板生成一張圖片踢故,把圖片寫到系統(tǒng)相冊
- 開啟位圖上下文(畫板的大小)
- renderInContext:
- 生成一張圖片
- 關(guān)閉上下文
- 寫到系統(tǒng)相冊
- UIImageWriteToSavePhotosAlbum(寫入哪張圖片文黎,寫入完成時(shí)調(diào)用哪個(gè)方法,其他信息) 第一次執(zhí)行這個(gè)代碼會彈出一個(gè)框
- completionSelector殿较,寫入完成時(shí)候調(diào)用的方法耸峭,必須按照要求規(guī)范去寫,不能瞎寫image:didFinishSavingWithError:
從系統(tǒng)相冊中選擇照片
- 從底部modal出相冊
- 系統(tǒng)提供的控制器
- 彈出系統(tǒng)相冊選擇控制器
- UIImagePickerController
- self presentViewController:animated:
- 設(shè)置照片的來源
- .sourceType
- libray
- camera
- album
- .sourceType
- 點(diǎn)擊照片的時(shí)候淋纲,把照片給畫板
- 代理(里三步系統(tǒng)做好了)
- .delegate = self
- 遵守協(xié)議:兩個(gè)協(xié)議
- UINavigationControllDelegate
- UIPickerControllerDelegate
- imagePickerController:代理方法
- info:字典%@打印一下
- drawView定義image屬性
- 重寫setImage方法
- 圖片也要放到數(shù)組當(dāng)中去
- OC當(dāng)中數(shù)組可以放兩種不同的數(shù)據(jù)類型抓艳,但是swift不可以
- drawRect:方法中判斷如果是圖片就采用圖片的畫法,如果不是就是路徑
- image:drawInRect
- 代理方法中帚戳,添加imageView,添加手勢
- pan.view就是手勢所在的view
- 允許支持多個(gè)手勢
- 長按手勢
- 開始的時(shí)候閃一下玷或,改alpha值
- 把圖片繪制到畫板中
- 截屏
- UIImageView不可以,用UIView試一下
- 透明的UIView
- UIImageView添加到UIView里面
- 手勢還是加給UIImageView
- 長按手勢的時(shí)候片任,對UIView截屏
- HandleView
- 代理
- 手動dismiss