中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

iOS高級(jí)開發(fā)——CollectionView修改cell的文本及模型重構(gòu) -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【www.szmdbiao.com - 電腦資料】

    該篇博客是在《iOS高級(jí)開發(fā)——CollectionView的動(dòng)態(tài)增刪cell及模型重構(gòu)》的基礎(chǔ)上繼續(xù)進(jìn)行開發(fā)的,

iOS高級(jí)開發(fā)——CollectionView修改cell的文本及模型重構(gòu)

。在之前那篇博客中,我們實(shí)現(xiàn)了動(dòng)態(tài)的增刪cell,并且使用了模型Model進(jìn)行重構(gòu)。今天我們要實(shí)現(xiàn)的是動(dòng)態(tài)修改cell中的描述文字,通過這個(gè)案例,我們能發(fā)現(xiàn)使用Model的好處。代碼已經(jīng)上傳至:https://github.com/chenyufeng1991/CollectionView .中的“動(dòng)態(tài)增加cell和section實(shí)現(xiàn)” 。

    (1)我這里通過長按cell的操作,彈出輸入對(duì)話框,然后輸入修改的描述文字。CollectionView本身沒有長按事件,我這里通過增加長按手勢來實(shí)現(xiàn)。該功能在《iOS高級(jí)開發(fā)——CollectionView的cell長按事件實(shí)現(xiàn)》中也有說明。實(shí)現(xiàn)代碼如下:

#pragma mark - 創(chuàng)建長按手勢- (void)createLongPressGesture{    //創(chuàng)建長按手勢監(jiān)聽  UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]                                             initWithTarget:self                                             action:@selector(myHandleTableviewCellLongPressed:)];  longPress.minimumPressDuration = 1.0;  //將長按手勢添加到需要實(shí)現(xiàn)長按操作的視圖里  [self.collectionView addGestureRecognizer:longPress];}

    (2)然后需要在長按開始的方法內(nèi)彈出輸入對(duì)話框,在點(diǎn)擊對(duì)話框確定按鈕的時(shí)候進(jìn)行修改文本。實(shí)現(xiàn)代碼如下:

- (void) myHandleTableviewCellLongPressed:(UILongPressGestureRecognizer *)gestureRecognizer {      CGPoint pointTouch = [gestureRecognizer locationInView:self.collectionView];    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {    NSLog(@長按手勢開始);        NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:pointTouch];    if (indexPath == nil) {      NSLog(@空);    }else{      UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@提示 message:@請輸入修改后的描述文字 preferredStyle.:UIAlertControllerStyleAlert];      //以下方法就可以實(shí)現(xiàn)在提示框中輸入文本;      [alertController addAction:[UIAlertAction actionWithTitle:@確定 style.:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {        UITextField *cellDescTextField = alertController.textFields.firstObject;                NSString *cellDesc = cellDescTextField.text;        NSLog(@輸入的文字是:%@,cellDesc);                        //找到當(dāng)前操作的section;        SectionModel *section = [self.dataSectionArray objectAtIndex:indexPath.section];        //找到當(dāng)前操作的cell;        CellModel *cell = [section.cellArray objectAtIndex:indexPath.row];        //修改該cell的描述文字;        cell.cellDesc = cellDesc;                //確定當(dāng)前的cell數(shù)組;        self.dataCellArray = section.cellArray;        //替換cell數(shù)組中的內(nèi)容;        [self.dataCellArray replaceObjectAtIndex:indexPath.row withObject:cell];        //更新界面;        [self.collectionView reloadData];                      }]];            [alertController addAction:[UIAlertAction actionWithTitle:@取消 style.:UIAlertActionStyleDefault handler:nil]];      [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {        textField.placeholder = @請輸入Section名稱;      }];      [self presentViewController:alertController animated:true completion:nil];      NSLog(@Section = %ld,Row = %ld,(long)indexPath.section,(long)indexPath.row);          }  }  if (gestureRecognizer.state == UIGestureRecognizerStateChanged) {    NSLog(@長按手勢改變,發(fā)生長按拖拽動(dòng)作執(zhí)行該方法);  }    if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {    NSLog(@長按手勢結(jié)束);  }}

(3)實(shí)現(xiàn)效果如下:

   

    ,

電腦資料

iOS高級(jí)開發(fā)——CollectionView修改cell的文本及模型重構(gòu)》(http://www.szmdbiao.com)。

    。

    總結(jié),我會(huì)持續(xù)對(duì)CollectionView的使用進(jìn)行更新,并實(shí)現(xiàn)其他復(fù)雜實(shí)用的效果。請大家不斷關(guān)注。

最新文章