標籤: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小技巧