您的位置:时时app平台注册网站 > 彩世界网址 > UITableViewCell ---和--- UICollectionViewCell 自定制需要

UITableViewCell ---和--- UICollectionViewCell 自定制需要

2019-12-06 10:57

希望本文所述对大家的javascript程序设计有所帮助。

要如何实现tableView的多选呢下面我总结了一下,只需要实现四个方法就能实现cell的多选模式
首先tableView的必须实现的协议方法不包含在四个方法里面,其中一个是UIViewcontroller里的方法,并不是协议方法.但是执行此方法会有一个bug,当你提交两种style时(在第二个实现方法中)不能实现滑动删除.
其中第一个方法是UIViewcontroller的方法 设置可编辑模式

UITableViewCell实现注册方法

本文实例讲述了js实现鼠标滑过文字链接色彩变化效果的方法。分享给大家供大家参考。具体实现方法如下:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [_tableView setEditing:editing animated:animated];
    if (editing) {
    // no done
    } else {
    // delete selected array   
    [array removeObjectsInArray:_selectedArray]; // selected component added array
   [_tableView deleteRowsAtIndexPaths:_selectedIndexArray  withRowAnimation:UITableViewRowAnimationLeft]; // selected indexPath added array
       [_selectedIndexArray removeAllObjects];  // empty array component
       [_selectedArray removeAllObjects];   // empty array component
    }
}

UITableView 的Cell 有两个注册方式: ( 一 ) 利用XIB拖拽控件来实现自定制的目的.必须使用方法一 实现注册Cell;(二)利用自己编写代码, 利用Masonry 等第三方,来实现自动布局,必须使用方法二 实现注册Cell.

鼠标移入移出效果body,ul,h2,p{margin:0; padding:0;font-family:"微软雅黑";background:#333;}li{list-style:none;}a{text-decoration:none;}#box{width:270px;padding:10px 10px 20px;overflow:hidden;margin:20px auto 0;border:1px solid #FFF;}.internal{width:266px;float:left;}#box h2{height:38px;border-bottom:1px solid #ccc;padding-left:5px;}#box h2 strong{float:left; line-height:38px;color:#885050;}#box h2 a{float:right;width:52px;height:14px;font-size:12px;text-indent:20px;color:#fff;line-height:12px;font-weight:normal;margin-top:10px;}#box li{height:30px;position:relative;border-bottom:1px dashed #ccc;}#box li div,#box li p{height:30px;position:absolute;top:0;left:0;width:100%;}#box li p{background:#fff;opacity:0;filter:alpha;}#box li div a,#box li div span{line-height:30px;font-size:12px;height:30px;}#box li div a {float:left;padding-left:5px;color:#7F5454;width:185px;overflow:hidden;}#box li div span{padding-right:10px;float:right;color:#CF9494;}window.onload=function(){ var d=document; var oBox=d.getElementById; var aLi=oBox.getElementsByTagName; var i=0; for { var oP=aLi[i].getElementsByTagName[0]; oP.iAlpha=0; oP.times=null; aLi[i].onmouseover=function() { oP=this.getElementsByTagName[0]; oP.times && clearInterval; oP.style.opacity=1; oP.style.filter="alpha"; oP.iAlpha=100; }; aLi[i].onmouseout=function() { startMove(this.getElementsByTagName }; }};function startMove{ obj.times && clearInterval; obj.times=setInterval { doMove;}function doMove{ var iSpeed=5; if { clearInterval; obj.iAlpha=0; obj.time=null; } else { obj.iAlpha-=iSpeed; } obj.style.filter="alpha(opacity=" obj.iAlpha ")"; obj.style.opacity=obj.iAlpha/100;}  网页特效代码 more      广告代码特效大全  2011-09-10       JS特效代码集锦  2011-09-10      商业网页模板与光盘素材 2011-09-10      网页制作教程 2011-09-10      网站源码整站源代码下载 2011-09-10       网页电子书下载  2011-09-10       免费网页模板下载  2011-09-10    
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.editing) {
        [_selectedArray removeObject:_array[indexPath.row]]; // delete selected component
        [_selectedIndexArray removeObject:indexPath]; // delete selected indexPath
    }
}
方法一:利用XIB 方法, 实现注册cell
[_tableView registerNib:[UINib nibWithNibName:@"自定制Cell 的文件名" bundle:nil] forCellReuseIdentifier:@"复用 ID"];

第四个实现方法是UITableViewdelegate 方法是取消

UICollectionViewCell 使用讲解

同样,UICollectionViewCell 的自定制也有两个方法.( 一 )利用XIB拖拽控件来实现自定制的目的.必须使用方法一 实现注册Cell;(二)利用自己编写代码, 利用Masonry 等第三方,来实现自动布局,必须使用方法二 实现注册Cell.

第三个实现方法UITableViewdelegate 方法功能是选中

方法二: 纯代码 实现注册cell
[_tableView registerClass:[纯代码编写cell 的类名 class] forCellReuseIdentifier:@"复用 ID"];
/*
// 例如: 
// CommonCell 是一个自定制的 UITableViewCell
[_tableView registerClass:[CommonCell class] forCellReuseIdentifier:@"CommonCell"];
*/

针对第二种方法实现的定制cell的功能, 需要注意, 必须实现

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        /*
          需要在这里编写代码,实现自定制的功能.为了方便维护, 我写成一个一个函数, 在这里调用.
        */
        [self createUI]; // 创建 UI 界面 (使用 Masonry 实现自动布局)
    }
    return self;
}
- (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {    
    UITableViewRowAction *rowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
        [_nameArr removeObjectAtIndex:indexPath.row];
        [_tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    }];
    return @[rowAction];  // can add more rowAction to complete other operation
}
方法二: 纯代码 实现注册cell
// _membersCollectionView 是一个 UICollectionView 
[_membersCollectionView registerClass:[纯代码编写cell 的类名 class] forCellReuseIdentifier:@"复用 ID"];
/*
// 例如: 
//MemberCell 是一个自己定义的 UICollectionViewCell
[_membersCollectionView registerClass:[MemberCell class] forCellWithReuseIdentifier:@"MemberCell"];
*/

针对第二种方法实现的定制cell的功能, 需要注意, 必须实现

- (instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        /*
          需要在这里编写代码,实现自定制的功能.为了方便维护, 我写成一个一个函数, 在这里调用.
        */
        [self createUI]; // 创建 UI 界面 (使用 Masonry 实现自动布局)
    } 
    return self;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
   // selected deleteStyle and insertStyle at the same time 
    return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}

UICollectionViewCell实现注册方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.editing) {
       [_selectedIndexArray addObject:indexPath];  // add indexPath to array 
       [_selectedArray addObject:_array[indexPath.row]];// add component to array
    }
}
方法一:利用XIB 方法, 实现注册cell
// _membersCollectionView 是一个 UICollectionView 
[_membersCollectionView registerNib:[UINib nibWithNibName:@"自定制Cell 的文件名" bundle:nil] forCellReuseIdentifier:@"复用 ID"];

第二个实现方法UITableViewdelegate 返回style

另外怎样实现单个cell的多功能呢,下面的方法能够解决此问题

本文由时时app平台注册网站发布于彩世界网址,转载请注明出处:UITableViewCell ---和--- UICollectionViewCell 自定制需要

关键词: