胡說八道 - 2 UIScrollView 之我見

1 簡單理解

  • 可以把 UIScrollView 看做是一個探照燈。探照燈的尺寸就是 UIScrollView 的尺寸。
  • UIScrollVIew 的 ContentView 可以看做是在探照燈下的內(nèi)容。
    想象一個場景:你端著探照燈,查看一張地圖,地圖大得很,只能看到探照燈下面的內(nèi)容。你為了看到更多的內(nèi)容:1 自己很勤快:自己動探照燈;2 自己不想動,保持探照燈不動,只移動地圖,地圖從上往下動,也能看到所有的內(nèi)容。
  • 最最重要的:1 帶著坐標(biāo)系去理解 ScrollView 和 ContentView;2 動就只動一個,不要兩個都動。
scrollView-1.png

注意:1 此時若動 ScrollView ,則保持 ContentView 的坐標(biāo)原點不變化(改變 ScrollView 的 Bounds )。第二種理解:保持 探照燈 ScrollVIew 的坐標(biāo)原點不動,移動 ContentView 的 Bounds。

2 基本屬性

從文頂頂?shù)牟┛椭斜I來的圖片。

ScrollView-2.png
  • contentSize
  • contentOffset
  • contentInset
    [注]:一個用戶習(xí)慣:手指往上滑動時,想要看到下面更多的內(nèi)容??梢岳斫鉃椋? 將 ContentView 往上挪 2 或者ScrollView 往下挪,兩者不要搞混。自然的用戶行為是:手指往上滑動時,就可以看做是 1 將ContentView 往下挪 2 將 ScrollVIew 往上挪

3 實現(xiàn)幾個效果

  1. 實現(xiàn)類似新浪微博的個人中心效果
    1.監(jiān)聽 ContentOffset.y 的改變
    2.設(shè)置導(dǎo)航欄的隱藏和顯示
  2. 實現(xiàn)新特性頁面
    1.監(jiān)聽 ContentOffset.x 的改變,計算對應(yīng)的頁碼
    2.設(shè)置按鈕的顯示與隱藏
  3. 簡書首頁效果實現(xiàn)
  4. 設(shè)置 ContentInset,讓內(nèi)容不要被導(dǎo)航欄擋住
  5. 在 ScrollVIew 上添加 UITableViewController 的視圖
    問題:此處的 tableView 的內(nèi)容為什么能穿透導(dǎo)航欄顯示?
  6. 自定義流水布局實現(xiàn)卡片放大
  7. 計算每個 Rectangle 中的 item 的顯示布局
  8. Item 中的卡片的中心點的計算,以 ContentView 的原點為參照點。這里一定借助 ScrollView 和 ContentView 之間的坐標(biāo)系理解
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容