#14 scroll view delegate — 分頁-三麗鷗明星
delegate 是App 設計的好幫手,善用 理解 delegate 功能 搭配UI元件event ,製作親和友善的操作畫面,更能彰顯及提升整體App質感及細緻度。
這次實作延續上次 #13 scroll view+stack view 用storyboard 滑動換畫面功能,加上 protocol UIscrollViewDelegate 的 回報scrollView停止滑動時的座標,用來計算現在滑動的頁數傳給pageControl作爲顯示,並使用pageControl的change value EVENT ACTION ,實現換頁功能,增加操作的便利及直覺操作。
先看這次實作成果,製作資料引用三麗鷗公司+漢來Hotel的圖文。
在storyboard 加入UI元件..stack View ,scroll View ,page control ,image view ,text View,設定 autoLayout ….等這一些畫面製作程序完成,接下來就是程式編輯。
- scrollview 的 delegate 是viewController(scrollview拉線到viewController選delegate) ,viewController 遵從 Protocol — UIScrollViewDelegate
2. 實作Protocol — UIScrollViewDelegate 的function ,
使用停止滑動的函式 ,在滑動停止時藉由scrollview屬性scrollView.contentOffset.x知道滑動的座標值,scrollView.bounds.width是滑動一頁的寬度,計算出現在滑到哪一頁。
實現pagecontrol的換頁功能,要用pagecontrol的EVENT -changeValue,拉出IBAction,當按pagecontrol利用 value change算出scrollview座標值,去設定scrollview要滑到下一頁的座標值,即可實現pagecontrol換頁功能。
要注意到TEXT VIEW是顯示功能,不能編輯要作以下設定
Behavior 的 Editable , Selectable 的兩項勾選要取消,畫面點到text view才不會跳出鍵盤。
gitHub