iOS 滾動檢視程式設計指南

類別: IT

iOS 應用中的 Scroll view 用來顯示和讓使用者操作大小超出螢幕顯示範圍的內容。Scroll view 主要有兩個用途:

  • 讓使用者拖動到他們想要顯示的內容區域

  • 讓使用者用雙指手勢放大、縮小

下圖是一個典型的 UIScrollViewclass 使用場景。當使用者單指在螢幕上拖動時,圖片的顯示部分會移動,並且如圖所示,會顯示滾動條。當使用者抬起手指,滾動條消失。

../Art/NSImageView_UIScrollView.jpg

概覽

UIScrollView 類提供以下功能:

  • 滾動顯示超出螢幕範圍的內容

  • 縮放內容,讓你的應用可以支援標準的雙指手勢縮放

  • 將滾動限制為每次顯示一屏內容(分頁(paging)模式)

UIScrollView 類中並沒有專門定義“顯示內容”這個屬性;相反,它只是簡單地滾動它的 subview 們。這個簡單的模型是可行的,因為 iOS 上的 scroll view 對於滾動的初始化沒有額外控制。

基本的 View 滾動最容易實現了

通過拖動或輕拂(flick)手勢來滾動,既不需要繼承也不需要 delegate(委託)。整個介面都可以在 Interface Builder 中設計和建立,除了內容的尺寸需要在程式碼中對 UIScrollView 物件進行設定。

相關章節:: “建立並配置 Scroll View”

要支援雙指縮放手勢,需要用 delegate

新增支援基本的雙指收攏、分開的手勢縮放,需要在 scroll view 中用 delegate。作為 delegate 的類必須實現 UIScrollViewDelegate 介面,並實現一個 delegate 方法,指明要縮放的是 scroll view 的哪個 subview。同時需要指定最小和最大的縮放倍數,至少指定其中之一,或兩者都指定。

如果你的應用需要支援雙擊放大,雙指點選縮小,或者單指控制滾動和平移(在預設的手勢之外),你需要在 content view 中編寫程式碼來實現這些功能。

要支援雙擊或單擊縮放,你需要在 Content View 中實現程式碼

如果你的應用需要支援雙擊放大,雙指點選縮小,或者單指控制滾動和平移(在預設的手勢之外),你需要在 content view 中編寫程式碼來實現。

相關章節:: “單擊縮放”

要支援分頁(paging)模式,你可以只用3個 subview

要支援分頁模式,不需要繼承,也不需要 delegate。你只需指定內容的尺寸,然後勾選 Paging Enabled。大部分分頁的應用都可以只用3個 subview 實現,這樣可以節約記憶體,提升效能。

準備工作

在閱讀本教程之前,可以先讀一讀 iOS 應用程式設計指南 來了解 iOS 應用開發的基本過程。並且也可以參考 iOS 的 View Controller 程式設計指南 中有關 view controller 的基本資訊,在使用 scroll view 時常常會用到。

如何使用本文件

本教程的剩餘章節帶領你學習一系列越來越複雜的樣例,如處理單擊縮放的技術,理解 delegate 的作用和它的訊息傳遞順序,以及將 scroll view 嵌入你的應用中。

請參閱

以下的樣例專案可能會對你自己的 table view 實現有一些指導作用:

  • Scrolling 展示基本的滾動。

  • PageControl 展示分頁模式的 scroll view

  • 樣例專案的 ScrollViewSuite。這些是單擊滾動等一些進階的樣例,包括使用 tiling 來用記憶體效率高的方式顯示巨大的、細節豐富的圖片等。

iOS 滾動檢視程式設計指南原文請看這裡

推薦文章