一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

UI 常用方法總結(jié)之---UITableView

 嘆落花 2015-03-09

  轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/qq11231325

UITableView : UIScrollView <NSCoding>

1. 創(chuàng)建一個(gè) UITableView 對(duì)象

ITableView *tableView = [[UITableView alloc]initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStylePlain];

2.separatorColor

分割線顏色

e.g. ableView.separatorColor = [UIColor redColor];

3.rowHeight

調(diào)整每個(gè) cell 點(diǎn)高度(默認(rèn) 44 )

e.g. tableView.rowHeight = 60;

4.reloadData

刷新數(shù)據(jù)

e.g. [tableView reloadData];

5.<UITableViewDelegate,UITableViewDataSource>

兩個(gè)必須實(shí)現(xiàn)的方法

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

控制一個(gè) section 中 cell 的多少

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)

indexPath

控制 cell 中的內(nèi)容

6. 選中 cell 時(shí)候使用的方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

7. 取消選中時(shí)候用的方法   (不常用)

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

8. 控制分區(qū)個(gè)數(shù)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

9.section 上 Header 顯示的內(nèi)容

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

10.section 上 Footer 顯示的內(nèi)容

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

11.section 頂部的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

12.cell 的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

13 該方法返回值用于在表格右邊建立一個(gè)浮動(dòng)的索引

- ( NSArray *)sectionIndexTitlesForTableView:( UITableView *)tableView; 

cell相關(guān):

1.返回表格中指定indexPath對(duì)應(yīng)的cell

- ( UITableViewCell *)cellForRowAtIndexPath:( NSIndexPath *)indexPath;

2.返回指定cell的indexPath

- ( NSIndexPath *)indexPathForCell:( UITableViewCell *)cell;

3.返回表格中指定點(diǎn)所在的indexPath

- ( NSIndexPath *)indexPathForRowAtPoint:( CGPoint )point;

4.返回表格中指定區(qū)域內(nèi)所有indexPath 組成的數(shù)組

- ( NSArray *)indexPathsForRowsInRect:( CGRect )rect;   

5.返回表格中所有可見(jiàn)區(qū)域內(nèi)cell的數(shù)組

- ( NSArray *)visibleCells;

6.返回表格中所有可見(jiàn)區(qū)域內(nèi)cell對(duì)應(yīng)indexPath所組成的數(shù)組

- ( NSArray *)indexPathsForVisibleRows;

7.控制該表格滾動(dòng)到指定indexPath對(duì)應(yīng)的cell的頂端 中間 或者下方

- ( void )scrollToRowAtIndexPath:( NSIndexPath *)indexPath atScrollPosition:( UITableViewScrollPosition )scrollPosition animated:( BOOL )animated;

8.控制該表格滾動(dòng)到選中cell的頂端 中間 或者下方

-( void )scrollToNearestSelectedRowAtScrollPosition:( UITableViewScrollPosition )scrollPosition animated:( BOOL )animated;

處理單元格的選中

1.@property ( nonatomic ) BOOL allowsSelection

控制該表格是否允許被選中

2. @property ( nonatomic ) BOOL allowsMultipleSelection

控制該表格是否允許多選

3. @property ( nonatomic ) BOOL allowsSelectionDuringEditing; 

控制表格處于編輯狀態(tài)時(shí)是否允許被選中

4. @property ( nonatomic ) BOOL allowsMultipleSelectionDuringEditing

控制表格處于編輯狀態(tài)時(shí)是否允許被多選

5.獲取選中cell對(duì)應(yīng)的indexPath

- ( NSIndexPath *)indexPathForSelectedRow;

6.獲取所有被選中的cell對(duì)應(yīng)的indexPath組成的數(shù)組

- ( NSArray *)indexPathsForSelectedRows

7.控制該表格選中指定indexPath對(duì)應(yīng)的表格行,最后一個(gè)參數(shù)控制是否滾動(dòng)到被選中行的頂端 中間 和底部

- ( void )selectRowAtIndexPath:( NSIndexPath *)indexPath animated:( BOOL )animated scrollPosition:( UITableViewScrollPosition )scrollPosition;

8.控制取消選中該表格中指定indexPath對(duì)應(yīng)的表格行

- ( void )deselectRowAtIndexPath:( NSIndexPath *)indexPath animated:( BOOL )animated;

<UITableViewDelegate>

9.當(dāng)用戶將要選中表格中的某行時(shí)觸發(fā)方法

- ( NSIndexPath *)tableView:( UITableView *)tableView willSelectRowAtIndexPath:( NSIndexPath *)indexPath;

10.當(dāng)用戶完成選中表格中的某行時(shí)觸發(fā)方法

-( void )tableView:( UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath

11.當(dāng)用戶將要取消選中表格中某行時(shí)觸發(fā)

- ( NSIndexPath *)tableView:( UITableView *)tableView willDeselectRowAtIndexPath:( NSIndexPath *)indexPath

12.當(dāng)用戶完成取消選中表格中某行時(shí)觸發(fā)

- ( void )tableView:( UITableView *)tableView didDeselectRowAtIndexPath:( NSIndexPath *)indexPath 

關(guān)于對(duì)表格的編輯

1.對(duì)表格控件執(zhí)行多個(gè)連續(xù)的插入,刪除和移動(dòng)操作之前調(diào)用這個(gè)方法開(kāi)始更新

- ( void )beginUpdates;

2.對(duì)表格控件執(zhí)行多個(gè)連續(xù)的插入,刪除和移動(dòng)操作之后調(diào)用這個(gè)方法結(jié)束

- ( void )endUpdates;

3.在一個(gè)或多個(gè)indexPath處插入cell

- ( void )insertRowsAtIndexPaths:( NSArray *)indexPaths withRowAnimation:( UITableViewRowAnimation )animation;

4.刪除一個(gè)或多個(gè)indexPath處的cell

- ( void )deleteRowsAtIndexPaths:( NSArray *)indexPaths withRowAnimation:( UITableViewRowAnimation )animation;

5.將制定indexPath處的cell移動(dòng)到另個(gè)一indexPath處

- ( void )moveRowAtIndexPath:( NSIndexPath *)indexPath toIndexPath:( NSIndexPath *)newIndexPath 

6.指定的indexSet所包含的一個(gè)或多個(gè)分區(qū)號(hào)對(duì)應(yīng)的位置插入分區(qū)

- ( void )insertSections:( NSIndexSet *)sections withRowAnimation:( UITableViewRowAnimation )animation;

7.刪除指定indexSet所包含的一個(gè)或多個(gè)分區(qū)號(hào)所對(duì)應(yīng)的分區(qū)

- ( void )deleteSections:( NSIndexSet *)sections withRowAnimation:( UITableViewRowAnimation )animation;

8.將指定分區(qū)移動(dòng)到另一個(gè)位置

- ( void )moveSection:( NSInteger )section toSection:( NSInteger )newSection

@protocol UITableViewDataSource< NSObject >

9.該方法返回值決定指定indexPath對(duì)應(yīng)的cell是否可以編輯

- ( BOOL )tableView:( UITableView *)tableView canEditRowAtIndexPath:( NSIndexPath *)indexPath;

10.該方法返回值決定指定indexPath對(duì)應(yīng)的cell是否可以移動(dòng)

- ( BOOL )tableView:( UITableView *)tableView canMoveRowAtIndexPath:( NSIndexPath *)indexPath;

11.當(dāng)用戶對(duì)指定表格行編輯(包括插入和刪除)時(shí)觸發(fā)該方法

- ( void )tableView:( UITableView *)tableView commitEditingStyle:( UITableViewCellEditingStyle )editingStyle forRowAtIndexPath:( NSIndexPath *)indexPath;

12.該方法觸發(fā)移動(dòng)  通常對(duì)數(shù)據(jù)進(jìn)行處理(重要)

- ( void )tableView:( UITableView *)tableView moveRowAtIndexPath:( NSIndexPath *)sourceIndexPath toIndexPath:( NSIndexPath *)destinationIndexPath;

@protocol UITableViewDelegate< NSObject , UIScrollViewDelegate >

13.開(kāi)始/完成 編輯時(shí)調(diào)用的兩個(gè)方法

- ( void )tableView:( UITableView *)tableView willBeginEditingRowAtIndexPath:( NSIndexPath *)indexPath;

- ( void )tableView:( UITableView *)tableView didEndEditingRowAtIndexPath:( NSIndexPath *)indexPath;

14.該方法返回值決定了 indexPath處的cell 的編輯狀態(tài)  返回值為枚舉類(lèi)型 分別為 None Delete Insert 

- ( UITableViewCellEditingStyle )tableView:( UITableView *)tableView editingStyleForRowAtIndexPath:( NSIndexPath *)indexPath;

15.該方法決定了 cell處于被編輯狀態(tài)時(shí)是否應(yīng)該縮進(jìn)  若未重寫(xiě) 所有cell處于編輯狀態(tài)時(shí)都會(huì)縮進(jìn)

- ( BOOL )tableView:( UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:( NSIndexPath *)indexPath;

UITableViewCell  :  UIView  < NSCoding ,  UIGestureRecognizerDelegate >

這里涉及到自定義 UITableViewCell  以下為具體步驟以及需要注意到地方

1. 首先創(chuàng)建一個(gè)類(lèi)繼承 UITableViewCell

2. 把自定義 cell 上到自定義視圖全部設(shè)置為屬性(注意:屬性名一定不要和系統(tǒng)屬性命重復(fù) e.g.  imageView,textLable,detailTextLable )

3. 在 cell 的初始化方法中   對(duì)自定義視圖對(duì)屬性初始化,在初始化對(duì)時(shí)候可以不指定 frame (注意,這里加載到視圖上時(shí)   加載到 contentView  上    同時(shí)注意內(nèi)存管理)

4. 在 layoutSubviews 方法中完成最后操作   通常給出 frame (注意,這個(gè)方法為系統(tǒng)自帶方法,當(dāng)一個(gè) cell 顯示到屏幕上之前,最后調(diào)用到一個(gè)方法,   所有 cell 到操作   包括賦值,調(diào)整高度等   都已經(jīng)完成    一定不要忘記 [super layoutSubviews]; )

附加: 當(dāng)一個(gè) cell 被選中的方法

- (void)setSelected:(BOOL)selected animated:(BOOL)animated

一些小操作:

// 將單元格的邊框設(shè)置為圓角

cell. layer . cornerRadius  =  12 ;

cell. layer . masksToBounds  =  YES ;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    国语久精品在视频在线观看| 中国少妇精品偷拍视频| 国产日韩欧美一区二区| 国产精品亚洲一级av第二区| 日韩在线精品视频观看| 日本和亚洲的香蕉视频| 精品久久综合日本欧美| 欧美人妻少妇精品久久性色| 国产精品免费自拍视频| 中文字幕欧美精品人妻一区| 日韩av亚洲一区二区三区| 国产精品免费不卡视频| 扒开腿狂躁女人爽出白浆av| 五月婷婷六月丁香亚洲| 国产亚洲欧美另类久久久| 中国少妇精品偷拍视频| 中字幕一区二区三区久久蜜桃| 不卡一区二区在线视频| 国产精品日韩欧美一区二区| 国语对白刺激高潮在线视频| 搡老熟女老女人一区二区| 最近最新中文字幕免费| 插进她的身体里在线观看骚| 久久99亚洲小姐精品综合| 99热九九热这里只有精品| 国产在线视频好看不卡| 美女被后入视频在线观看| 国内尹人香蕉综合在线| 国产精品丝袜美腿一区二区| 日本熟妇熟女久久综合| 高清欧美大片免费在线观看| 自拍偷拍福利视频在线观看| 大尺度剧情国产在线视频| 日韩欧美黄色一级视频| 日韩黄色一级片免费收看| 亚洲免费视频中文字幕在线观看 | 午夜精品一区二区三区国产| 亚洲中文字幕综合网在线| 欧美日韩亚洲综合国产人| 国产a天堂一区二区专区| 久久中文字人妻熟女小妇|