UITableView和UICollectionView使用中出現的問題總結

(1)在使用UITableView時經常會出現代理或者數據源方法不走的情況,遇到這類情況很多人就着急了,我要告訴你的是,不要着急,肯定是你的代碼出現問題了,如何查找到問題出在哪個地方呢?

第一步:仔細看看你的TableView是不是添加到父視圖上邊了,沒有添加上去當然不會它的代理和數據源方法了;

第二步:你的代理和數據源寫了嗎?如果只寫了數據源沒有寫代理那就把兩個都寫上,這裏是爲了更安全;

第三步:是不是隻走了返回單元格個數的方法而沒有走返回單元格的方法,這個情況要根據你的單元格的創建方法來判斷,單元格創建最簡單的是直接創建,這個情況出問題的很少,不過你也要看看是不是你創建的單元格子類化了,單元格的本類是不是子類化的那個類;複用了單元格的情況,解決思路和直接創建一樣,值得注意的是單元格的identifier一定不要有重複的;藉助xib的情況,xib中的identifier和從複用池中拿的單元格的identifier一樣嗎?到這步還沒解決問題?

第四步:把動態返回單元格的高度的方法寫上,把父視圖的automaticallyAdjustsScrollViewInsets屬性設置爲NO,爲什麼呢?往父視圖上添加的第一個視圖是UIScrollView以及它子類的對象的時候,會自動往下偏移64個像素,但是這和數據源方法不走又有多少關係呢?只能告訴你,這是經驗總結。。。。

(2)還有遇到明明子類化了一個UITableViewCell,但是一運行就說子類化的類不存在,或者是讓你從Nib中獲取,不要推卸責任到Xcode上,是你之前創建了一這樣一個類,然後把它給刪了,又創建了一個名字一樣的類,這時候把Xcode清空一下緩存吧,如果還不行,自己犯下的錯,含着淚也要重新創建一個類,注意不要再用你刪除的類命名,記得把單元格的類名改一下哦!!那告訴你從Nib中獲取單元格呢?同樣的原因,操作辦法和剛纔一樣。。。不要嫌麻煩,程序員就是製造麻煩然後解決麻煩的!!

(3)創建的tableView有時候會往下偏移,還是automaticallyAdjustsScrollViewInsets惹的禍,還有時候最後一個單元格只顯示了一部分,這就要看你創建的tableView時候的frame怎麼設置的,有導航控制器和標籤控制器的時候它都會自動偏移的,這種問題的解決辦法就是用tableView的contentInset屬性把tableView的偏移量改過來。

使用UICollectionView也會遇到上面這些問題,一步一步來,問題都會解決的,在UICollectionView中還可能是因爲用的不是UICollectionViewFlowLayout,再確定你的代理寫的是UICollectionViewDelegateFlowLayout,還有註冊單元格的類名對嗎?

總之出現問題首先考慮的是代碼那個地方出錯了,永遠不要相信的自己代碼是完美的,旺旺你認爲最沒有錯誤的地方會出現問題。。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章