通過在cellforrow方法和heightforrow方法列印函式,發現
1.系統首先把所有的cell的位置都計算好,儲存
2.當cell要顯示的時候,就會拿到這個cell去設定frame
cell.frame = self.frame[row]
所以萬能的設定cell分割線的方法
1.取消系統的分割線
2.將tableview的背景色設定成分割線的背景色
3.重寫setframe方法,在cell將要顯示給cell的frame賦值的時候讓cell的高度-1,然後賦值,
第二個cell的y值不會變,因為cell的y值在賦值之前已經全部計算好並且儲存起來了,所以在給每個cell賦值的時候做手腳就行了
nsstringfromedginset(sertoredgint);
nsstringfromcgrect(frame);
iOS weak的底層實現
weak底層千千萬,吾竟裝作看不見.weak基本用法 weak是弱引用,用weak描述修飾或者所引用物件的計數器不會加一,並且會在引用的物件被釋放的時候自動被設定為nil,大大避免了野指標訪問壞記憶體引起崩潰的情況,另外weak還可以用於解決迴圈引用。weak原理概括 weak表其實是乙個hash ...
集合的底層實現
arraylist的實現原理 1.arraylist是list介面的可變陣列非同步實現,並允許包括null在內的所有元素。2.底層使用陣列實現。3.該集合是可變長度陣列,陣列擴容時,會將老陣列中的元素重新拷貝乙份到新的陣列中,每次陣列容量增長大約是其容量的1.5倍,這種操作的代價很高。4.採用了fa...
malloc的底層實現
每個程序都有乙個虛擬記憶體空間,虛擬記憶體空間通過mmu 儲存器管理單元 對映到真正的物理空間,mmu是乙個硬體,利用儲存在主存中的查詢表翻譯虛擬位址,查詢表由作業系統管理,使用者無法獲取。虛擬位址空間給每個程序乙個假象,就像每個進城擁有4g的執行空間一樣,但是實際在使用記憶體的時候,虛擬位址空間通...