天天看點

iOS之UI--塗鴉畫闆執行個體 (有待更新)

首先是搭建架構

iOS之UI--塗鴉畫闆執行個體 (有待更新)
iOS之UI--塗鴉畫闆執行個體 (有待更新)

其他的略過,直接展示效果:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

然後在自定義繼承uiview的canvasview中:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

然後效果是:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

因為上面邏輯上的緣故,是以每重新繪制一次就會清除前一次的痕迹。那麼解決方案就是,通過一個強引用的可變數組索引來存儲每一次建立的路徑,然後繪制出就周遊這個數組,全部繪出路徑即可。

iOS之UI--塗鴉畫闆執行個體 (有待更新)

效果:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

https://github.com/nicklockwood/fastcoding>

iOS之UI--塗鴉畫闆執行個體 (有待更新)

因為想體驗一下直接用之前自己封裝好的沙盒存取和操作的自定義sandboxmanager,看看加載速度快不快。

并且我還設定了toolbar的背景顔色:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

這裡就上加載本地資料恢複對象狀态的關鍵代碼吧:

存儲對象的狀态:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

恢複對象的狀态:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

其實以上的方法就是瞎折騰,也不能算是瞎折騰,可以為以後開發遇到的新的需求提供新的可選擇的方案,

那麼接着就改為最優的方法,既然有modal直接用modal所有的方法和屬性即可,

關鍵代碼:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

接下來就是要為toolbar的其他item添加功能了

iOS之UI--塗鴉畫闆執行個體 (有待更新)

撤銷功能:

iOS之UI--塗鴉畫闆執行個體 (有待更新)
iOS之UI--塗鴉畫闆執行個體 (有待更新)

這裡需要添加一個業務邏輯:為了手繪之後要清楚存儲撤銷操作的數組:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

設定垃圾桶删除圖示的事件監聽:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

儲存到系統相冊的方法:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

這部分源碼,可以直接複制利用:

iOS之UI--塗鴉畫闆執行個體 (有待更新)

view code

接着,我突發奇想,想把特炫的蘋果封裝的好的轉場動畫用進去。當我點選垃圾桶圖示删除目前這個畫闆,根據前面的代碼我們也知道,會有彈出uiactionsheet提示框,點選确定當然會觸發清空的功能,但是我希望是在清空之前有個翻頁的功能,就好像前面不要的一頁翻過去了。

iOS之UI--塗鴉畫闆執行個體 (有待更新)

再看看運作效果

iOS之UI--塗鴉畫闆執行個體 (有待更新)