首先是搭建架構
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4gjN0YDN2cTMx0CNzkTNygDNzAjMxITM1EDMy0CMyQDN4czLcJTM1EDMy8CXwIDN0gzNvw1ZvxmYvwVbvNmLzd2bsJmbj5SNxAjMzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
其他的略過,直接展示效果:
然後在自定義繼承uiview的canvasview中:
然後效果是:
因為上面邏輯上的緣故,是以每重新繪制一次就會清除前一次的痕迹。那麼解決方案就是,通過一個強引用的可變數組索引來存儲每一次建立的路徑,然後繪制出就周遊這個數組,全部繪出路徑即可。
效果:
https://github.com/nicklockwood/fastcoding>
因為想體驗一下直接用之前自己封裝好的沙盒存取和操作的自定義sandboxmanager,看看加載速度快不快。
并且我還設定了toolbar的背景顔色:
這裡就上加載本地資料恢複對象狀态的關鍵代碼吧:
存儲對象的狀态:
恢複對象的狀态:
其實以上的方法就是瞎折騰,也不能算是瞎折騰,可以為以後開發遇到的新的需求提供新的可選擇的方案,
那麼接着就改為最優的方法,既然有modal直接用modal所有的方法和屬性即可,
關鍵代碼:
接下來就是要為toolbar的其他item添加功能了
撤銷功能:
這裡需要添加一個業務邏輯:為了手繪之後要清楚存儲撤銷操作的數組:
設定垃圾桶删除圖示的事件監聽:
儲存到系統相冊的方法:
這部分源碼,可以直接複制利用:
view code
接着,我突發奇想,想把特炫的蘋果封裝的好的轉場動畫用進去。當我點選垃圾桶圖示删除目前這個畫闆,根據前面的代碼我們也知道,會有彈出uiactionsheet提示框,點選确定當然會觸發清空的功能,但是我希望是在清空之前有個翻頁的功能,就好像前面不要的一頁翻過去了。
再看看運作效果