一、自動適應cell內容高度
- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
uilabel *label = (uilabel *)[cell viewwithtag:1];
nsstring *text;
text = [textarray objectatindex:indexpath.row];
cgrect cellframe = [cell frame];
cellframe.origin = cgpointmake(0, 0);
label.text = text;
cgrect rect = cgrectinset(cellframe, 2, 2);
label.frame = rect;
[label sizetofit];
if (label.frame.size.height > 46)
else
[cell setframe:cellframe];
return cell;
}
然後在heightforrowatindexpath中進行高度設定
- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath
二、自定義tableviewcell之間的分割線定製分隔線的方法有兩種,一種是通過api提供的setseparatorcolor 方法進行設定,另一種方法是通過認為的制定分割線,可以使也可以是顏色值,當然這個顏色和的畫素都必須非常小,否則介面可能會不協調。
1、先設定cell separatorcolor為clear,然後把做的分割線新增到自定義的custom cell上。
2、在cell裡新增乙個畫素的imageview後將載入進,之後設定tableview.separatorstyle = uitableviewcellseparatorstylenone
三、自定義cell中的內容
通常我們可能需要在乙個cell上放置我們需要的控制項,這樣就需要我們自定製cell,然後以這個cell來代替uitableviewcell。示例**:
//函式一 自定義cell的功能
-(void)makesubcell:(uitableviewcell *)acell withtitle:(nsstring *)title
value:(nsstring *)value
//函式二 **控制函式
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
if (cell == nil)
else
return cell;
}
最終效果圖:
計算UITableViewCell高度
uitableview是先執行 cgfloat tableview uitableview tableview heightforrowatindexpath nsindexpath indexpath函式計算整個uitableview內容高度,然後才執行 uitableviewcell table...
UITableViewCell重用問題
在寫sina 微博介面的過程中使用到了cell,那麼就是在cell上新增一些控制項,但是由於每條微博的內容都是不同的,所以在顯示的過程中,出現了內容重疊的問題,其實就是uitableviewcell重用機制的問題。cpp view plain copy uitableviewcell tablevi...
UITableViewCell重用機制
uitableview是ios開發中使用頻率非常高的乙個控制項,它常被用來展示資訊列表,儘管資訊資料可能非常多,但uitableview消耗的資源卻並不會隨著展示資訊的增多而變大,這都要得益於uitableviewcell的重用機制,重用機制 顧名思義,就是反覆利用資源的機制。以下通過一些 來看下通...