iOS開發之仿射變換樣本總結,ios變換樣本

來源:互聯網
上載者:User

iOS開發之仿射變換樣本總結,ios變換樣本

本篇部落格比較簡單,但還是比較實用的。其中的樣本依然使用Swift3.0來實現,該部落格算是下篇部落格的一個引子,因為我們下篇部落格要介紹使用Swift開發iOS應用中常用的一些Extension。而在這些Extension中的Image Extension中會用到仿射變換的東西來對圖片進行處理。所以本篇部落格就先將fang放射變換(CGAffineTransform)的東西拎出來單獨的過一下,這樣在下篇部落格中就可以減少對仿射變換的介紹了。

在之前的部落格中,我們聊過仿射變換的東西,不過是使用的放射變換來實現的動畫,關於該部分內容請移步於《iOS開發之各種動畫各種頁面切面效果》。之前的部落客要講述了CATransition,而本篇部落客要聊的內容是CGAffineTransform。當然本篇部落格的內容依然是依託於相關的樣本,該樣本對應的原始碼會在github上進行分享,博文結尾處為github源碼分享連結。雖然今天部落格中的代碼以及樣本都比較簡單,但是還是有必要單獨拎出來介紹一下的。

 

一、平移

接下來我們來看一下CGAffineTransform的平移,在使用CGAffineTransform進行平移的時候,我們要注意座標系的轉換。下方是我們在做UI布局時的座標系,也就是iOS螢幕的座標系。左上方是原點,x軸右為正,左為負,y軸上為負,下為正。下方就是iPhone的螢幕座標系。平移時也是採用下方的座標繫結構。

 

下方就是對ImageView的平移的效果。分別使用兩個Slider來控制左右移動和上下移動。具體運行效果如下所示。

  

控制平移的代碼也是比較簡單的,如下所示。x參數為正時則向右移動,x為負數時,向左移動。而參數y為正時,向下移動,y為負值時向上運動。具體代碼如下所示:

   

 

二、縮放

聊完平移,接下來我我們來看一下仿射變換的縮放。使用CGAffineTransform進行View的縮放也是比較簡單的,下方就是對ImageView進行縮放的運行效果。在縮放的過程中分為x方向上的縮放和y方向的縮放。x和y分別表示在x軸和y軸上縮放的倍數,如果x或者y為負數的話,那麼將相應的視圖翻轉後在進行縮放,運行效果如下所示。

  

實現上述效果也是比較簡單的,代碼就下方一行,如下所示,x就表示x軸上的縮放量,y就表示y軸上的縮放量。

  

 

 

三、旋轉

接下來就來聊聊CGAffineTransform的旋轉,直奔主題,下方就是旋轉的運行結果。旋轉是是按照弧度進行旋轉的,一圈是0-2∏,如果弧度為正,則是順時針旋轉,如果弧度為負,則是逆時針旋轉。具體運行結果如下所示:

  

實現上述效果的代碼也是比較簡單的,具體代碼如下所示:

  

 

本篇部落格的內容就介紹完了,下方是本篇部落格所涉及Demo的github源碼分享連結。

github分享連結:https://github.com/lizelu/CGAffineTransformDemo

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.