利用裝著 image view 的 view 控制圖片顯示範圍

當我們利用 image view 顯示圖片時,我們時常將它的 content mode 設為 Aspect Fill,勾選 Clip to Bounds ,實現圖片維持比例填滿 image view 的框框,超出的部分被切除的效果。

當超出的部分被切除時,圖片將置中於框框內,這一般也是我們想要的效果。如下圖所示,我們故意取消 Clip to Bounds 的勾選,此時可看到切除後保留的將是圖片中間的區塊。

然而有時我們想要的卻是圖片的某個區塊,並不是中間的區塊。比方左邊的圖片 Peter Pan 被切到了,我們希望能看到完整的 Peter,切除比較不重要的英國大笨鐘,這有可能實現嗎 ?

實現的方法很多,接下來我們嘗試一個不寫程式,純用 storyboard 實現的方法,利用裝著 image view 的 view 控制圖片顯示範圍。

圖片的 content mode 設為 Aspect Fill,取消 Clip to Bounds 的勾選

將 image view 裝到跟它一樣大小的 view 上

點選右下角的 Embed in 按鈕,然後從選單選擇 View Without Inset。

如下圖所示,此時將生出一個跟原本 image view 一樣大小的 view,而 image view 將裝在此 view 裡。

將 image view 超出 view 的區塊切掉

如下圖所示,勾選 view 的 Clip to Bounds,切掉 image view 超出 view 的區塊。

調整圖片的座標

剛剛的圖片不小心切到了重要的名字 Peter,我們希望 Peter 可以完整顯示。此時我們只要點選 image view,調整它的 x, y ,即可控制圖片在 view 裡顯示的區塊。

如下圖所示,我們將 y 調成 50,讓 image view 移動,順利地露出可愛的 Peter。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com