你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 源碼推薦(8.27):自定義寬高比的相冊框,view隱藏時也隱藏autolayout的NSLayoutAttribute

源碼推薦(8.27):自定義寬高比的相冊框,view隱藏時也隱藏autolayout的NSLayoutAttribute

編輯:IOS開發基礎

自定義寬高比的相冊框,拍照(作者:abc98246)

自定義寬高比的相冊框,拍照。已經修改模糊的問題。

測試環境:Xcode 6.2,iOS 6.0 以上

自定義寬高比的相冊框  拍照

當view隱藏的時候也隱藏其autolayout的NSLayoutAttribute(作者:zsntony)

當view隱藏的時候也隱藏其autolayout的NSLayoutAttribute,從而不用大量的代碼工作

測試環境:Xcode 6.2,iOS 6.0 以上

當view隱藏的時候也隱藏其autolayout的NSLayoutAttribute

獲取聯系人信息,通訊錄(作者:懂你的所以123)

獲取聯系人信息,通訊錄

測試環境:Xcode 6.2,iOS 6.0 以上

獲取聯系人信息,通訊錄

無限循環PageView,橫向TableView(作者:smartwalle)

UITableView 很強大,可是只能豎向滾動;UICollectionView 可以解決各種布局難題,但是稍顯復雜,對於一些簡單的需求,有點殺雞用牛刀的感覺。

在 iOS6 以前,還沒有 UICollectionView,為了實現橫向滾動的 UITableView,只有自己動手寫組件。為了達到和 UITableView 差不多的效果,就得先弄清其內部實現機制是怎麼回事。

在渲染 View 的時候,是很耗系統資源的,如果創建大量的 View, 系統運行將變得異常緩慢,甚至導致內存耗盡。但是,在實際應用中,我們難免會遇到大量的數據需要顯示,如果每顯示一個數據,我們都創建一個 View,那應用程序的體驗將相當糟糕。所以 Apple 為 iOS 開發者提供了 UITableView,Google 為 Android 開發者提供了 ListView。

簡單來講,UITableView 采用復用機制,其只會顯示其可見區域內的 UITableViewCell。我們在滑動的過程中,當超出 UITableView 可見區域的 Cell,將會從 UITableView 中移除,並加入回收池中以作復用。當 UITableView 需要顯示新的 Cell,會先從回收池中查找是否有相應的 Cell 可以重用(通過 dequeueReusableCellWithIdentifier:)。如果有,則直接將其重新顯示;如果沒有,則創建新的 Cell。這樣一來,就可以避免因創建過多的 View,導致內存耗盡的尴尬情況。

了解了其內部的運行原理,我們也可以實現一個自己的 UITableView。

很常見的一個應用場景——顯示圖片:如果顯示一張圖片,我們用一個 UIImageView 足矣,如果要顯示多張圖片,並且可以左右滾動,最簡單的辦法是用一個 UIScrollView 包含多個 UIImageView, 但是這樣帶來的後果則是,如果圖片數據量較大,那這個程序根本沒有辦法正常使用。如果我們還需要實現無限循環滾動,那這個解決方案肯定是不行的。所以這時候,就得我們自己實現一個 UITableView。

最開始,我寫了一個組件叫 KIFlowView,實現了上面講的需求,但是都是 iOS5 時代的產物了,難免過於陳舊。在後續的工作中也發現,類似的需求其實挺多的,比如左右滑動的 View,如網易新聞客戶端,可以左右滑動,在不同的新聞欄目之間進行切換;有時候我們也需要實現一些 Tab,如果 Tab 的項目比較多,也需要考慮復用的問題,所以決定重新寫一個增強組件,作為其替代品,所以就產生了 KIPageView。

測試環境:Xcode 6.2,iOS 6.0 以上

無限循環PageView,橫向TableView

iOS常用菜單(作者:fengchuanx)

寫了一些項目中可能會用到的常用菜單,以後有時間會繼續補充

測試環境:Xcode 6.2,iOS 6.0 以上

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved