UITableView 的一些奇淫技巧1

2022-03-14 16:48:34 字數 2093 閱讀 5166

感謝這位老兄

uitableview是工程開發中最經常使用到的ui控制項,但是你真的了解它嘛,這裡記錄幾點有用的但你可能並不知道的。

self.tableview.tablefooterview = [[uiview alloc]init];

self.tableview.separatorinset = uiedgeinsetszero;

但是你很快就會發現這麼做並沒有效果,這是因為separatorinset這個屬性在ios7以後就已經失效了,但是我們還是能夠達到同樣的效果,你可以在你的tablevview的**協議實現介面加上下面這段**:

/***  分割線頂頭

*/-(void)viewdidlayoutsubviews

if([self.tableview respondstoselector:@selector(setseparatorinset:)])else{

label.numberoflines = 0;

[tableview endupdates];

我用sb建立了乙個uitableview,然後在cell上放置了乙個label,初始化label 的numberoflines然後在介面上設定tableview

self.tableview.estimatedrowheight = 68.0;

self.tableview.rowheight = uitableviewautomaticdimension;

然後在他的點選動作中改變label的numberoflines,同時結合使用:

[tableview beginupdates];

[tableview endupdates];

像上面po出來的**那樣,這個時候你如果使用[tableview reloaddata]也能夠達到改變cell高度的效果,但是介面上就不會有使用[tableview beginupdates]那麼流暢,以此類推,其實在很多地方都可以用來代替[tableview reloaddata]來達到更好的效果.

你可能會經常忽略uitableview的一些屬性和**,必須下面這個方法:

-(void)tableview:(uitableview *)tableview willdisplaycell:(uitableviewcell *)cell forrowatindexpath:(nsindexpath *)indexpath{

cgfloat offset = tableview.contentoffset.y;

if(offset<=0) {

return;

cgrect oldrect = cell.frame;

cgrect newrect = cell.frame;

newrect.origin.x += 50;

cell.frame = newrect;

[uiview animatewithduration:0.5 animations:^{

cell.frame = oldrect;

如果你這麼寫會簡單的有乙個展示的動畫,這個**就是在cell展示到螢幕的時候發起的動作。

還有這個屬性:tableview.visiblecells,你的產品經理可能會要求你cell—-

-(void)scrollviewdidscroll:(uiscrollview *)scrollview{

for(uitableviewcell *cellin_tableview.visiblecells) {

/***  你可以在這裡對當前的cell進行一些操作**/

這個屬性會返回即將展示到螢幕上的cell,而放在這個滾動的回掉中你就可以對你的cell進行不停的調整了,具體能做出什麼動畫,就靠你的想象能力了。

tableview可能會造成你的controller過於龐大,或許你可以使用mvvm類似的構架來**你的controller。。。。。。

UITableVIew的一些編輯屬性

void tableview uitableview atableview commiteditingstyle uitableviewcelleditingstyle editingstyle forrowatindexpath nsindexpath indexpath tableview de...

UITableView中的一些坑

注意1 如果想從stroyboard中載入靜態 必須把這兩個方法實現去掉,否則顯示不出來資料,且靜態 只能在uitableviewcontroller中實現 pragma mark table view data source nsinteger numberofsectionsintablevie...

關於UITableView的一些細碎知識點總結

1.在storyboard中修改uitableviewcell高度的方法有兩種的區別 方法一 選中uitableviewcell 然後選中尺子,選中custom,可以修改cell的高度 方法二 選中tableview,選中右邊的尺子,可以直接設定整個tableview的行高 區別 方法一 設定的是單...