怎么在iOS中折疊單元格

本篇文章為大家展示了怎么在iOS中折疊單元格,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

目前創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、慶城網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

1.設(shè)置數(shù)組 (可變數(shù)組,用于更新單元格內(nèi)容)

2.調(diào)用方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { (來獲取被選中的單元格)
比如我們定義這個tableView 叫做littletableView
NSIndexPath *row = [self.littletableView indexPathForSelectedRow];
上面這個代碼用來獲取 被選中的單元格的indexPath。

3.如何將選中的單元格內(nèi)容與第一個單元格內(nèi)容互換
比如我們現(xiàn)在有一個數(shù)組
1 2 3 4 5
我們選中了4
把4用[array insertObject: array [indexPath.row] atIndex:0];這個方法提到1的前面
變成了 4 1 2 3 4 5,此時第二個4的索引加了1
我們在刪除時 [array removeObjectAtIndex:indexPath.row+1];索引要加1

4.改變tableView的大小 (這是非常重要的一點,如果你的tableView的frame不夠,你即使給他設(shè)置10列10行,他也不會改變,因為一旦無法容納,將不執(zhí)行定義cell的方法(親測)

下面是一步一步如何實現(xiàn)

1.在視圖控制器的.h文件中,設(shè)置倆個UItableView的屬性以及一個布爾值來判斷單元格是否展開,設(shè)置一個可變數(shù)組保存單元格的標題信息。

2.在viewDidLoad里將他們初始化設(shè)置代理,設(shè)置tag值

在實現(xiàn)協(xié)議方法時,根據(jù)不同的tag值,對應(yīng)不同方法體 例如:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 if (tableView.tag == 101) {
  return 1;
 } else {
  if (cellisOpen == NO) {
   return 1;
  } else {
   return 4;
  }
 }
}

//注意沒有設(shè)置代理,這些方法將不執(zhí)行

3.在沒有展開時,小單元格的行數(shù)為1(我們假設(shè)只有一組,行數(shù)發(fā)生變化),所以

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
 if (tableView.tag == 101) {
  return 1;
 } else {
  return 4;
 }
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 if (tableView.tag == 101) {
  return 1;
 } else {
  if (cellisOpen == NO) {
   return 1;
  } else {
   return 4;
  }
 }
}

在創(chuàng)建單元格的函數(shù)里,也要區(qū)分tag和布爾變量不同的情況的方法體

需要注意的是,在創(chuàng)建時,沒有展開的單元格讓其一直顯示數(shù)組的第一個元素

4.接下來是最后一個很關(guān)鍵的函數(shù)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"進入此函數(shù)");
 NSIndexPath *row = [self.littletableView indexPathForSelectedRow];
 [arrayrows insertObject:arrayrows[row.row] atIndex:0]; //arrayrows是存儲單元格信息的數(shù)組
 NSLog(@"%@",arrayrows[row.row]); //我們來打印一下選中的單元格
 [arrayrows removeObjectAtIndex:row.row+1]; // 刪除時選中的單元格索引加1
 for (int i = 0; i < 4; i++) {
  NSLog(@"%@",arrayrows[i]);
 }
 if (tableView.tag == 102) {
  if (cellisOpen == NO) {
  cellisOpen = YES; //更改折疊判斷的布爾變量
  } else {
   cellisOpen = NO;//更改折疊判斷的布爾變量
  }
 }
 if (cellisOpen == YES) {
  littletableView.frame = CGRectMake(280, 85, 120, 160); // 更改單元格的大小
 } else {
  littletableView.frame = CGRectMake(280, 85, 120, 40);
 }
 NSLog(@"%d",cellisOpen); //打印此時布爾值
 [littletableView reloadData]; // 更新被點擊的單元格信息

上述內(nèi)容就是怎么在iOS中折疊單元格,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:怎么在iOS中折疊單元格
鏈接分享:http://bm7419.com/article10/jdeigo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、建站公司、虛擬主機、品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)