iOS中TableView小技巧

來源:互聯網
上載者:User

標籤:track   class   通過   code   標題   set   navig   resign   開發   

摘要:

TableView是ios開發中經經常使用到的控制項,這裡統一記錄一下開發中遇到的經常使用小技巧,不斷探索更新。也希望大家能夠告訴我很多其它經常使用的小技巧啦~一起進步


1、去除多餘的列表線條

原始的TableView在沒有資料的行也會顯示一條條的線條,不太美觀,用一行代碼能夠解決,一般放在ViewDidLoad中

self.tableView.tableFooterView = [[UIView alloc] init];

詳細原理還沒弄懂。知道的麻煩不吝賜教一下~


2、選中列表條目後取消選中的背景顏色

不處理的情況下。選中一行後,該行會保持被選中的背景色。一般我們不希望其保持,而是一閃而過告知使用者選中過就好了,在TableView的Delegate方法中實現:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {    [tableView deselectRowAtIndexPath:indexPath animated:YES];// 選中後取消選中的顏色}


3、滑動列表時收合鍵盤

一般列表都會伴隨著搜尋方塊或其它輸入框,我們在輸入時彈出鍵盤。可是滑動列表時就表示我已經輸入完成了。不希望鍵盤保持在介面上,而是自己主動收合,相同是在TableView的Delegate方法中實現,可是是用的ScrollView的方法。讓搜尋方塊之類的放棄第一響應就可以:

// 滑動時收合搜尋方塊的鍵盤- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    [self.searchBar resignFirstResponder];}


4、去掉NavigationController下的TableView頂部出現的空白地區

iOS 7 中viewcontroller新增了屬性automaticallyAdjustsScrollViewInsets。即是否依據按所在介面的navigationbar與tabbar的高度,自己主動調整scrollview的 inset,把它設定為NO就好了:

self.automaticallyAdjustsScrollViewInsets = NO;



5、設定cell不可點擊

有時候我們的列表僅僅是為了展示某些內容,而不須要使用者點擊,也不希望使用者點擊。儘管上面第二條能夠設定點擊後取消選中。可是還是會有一個動畫效果存在。這種方法能夠讓點擊徹底沒有效果,明白地告訴使用者不能點擊列表:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];


6、依據indexPath擷取相應的cell

我們想要擷取或者改動cell中的資訊時。往往須要擷取cell,在tableview的delegate中,我們一般僅僅能擷取到indexPath這個參數。通過下面方法能夠擷取到相應的cell:

UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];


7、為cell設定不同高度

常規情況下,我們的cell都是相同的高度的,可是一些特殊情況下,比方cell內有一個label,這個label顯示的內容是依據文字長度變換label高度的,這時我們不能單單變換label的高度。還要對應的改變cell的高度。才幹正確地顯示內容。通過下面方法動態地設定cell高度:

// 首先依據內容改動cell高度- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{……// 擷取cell的frameCGRect cellFrame = [cell frame];// 依據內容改變cell高度 ……// ……// 改動cell的frame[cell setFrame:cellFrame];return cell;}// 別忘了這裡也要變- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];    return cell.frame.size.height;}



8、設定cell下方無切割線

假設我們想自己設計cell之間的切割線。就須要把cell之間的切割線所有去掉,通過以下的代碼去除cell的切割線:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;



9、設定section標題文字

section支援直接定義標題文字,儘管不太好看。但能夠滿足主要的需求:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {    return @"標題";}




持續探索更新中...


轉載請註明出處,謝謝

iOS中TableView小技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.