表格进行多选编辑时,如何让一部分cell支持勾选,一部分不支持
2015-09-06 17:35
381 查看
原理大致如下,
对editingStyleForRowAtIndexPath 对相应的cell进行相应的属性设置
[objc] view
plaincopy
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
CourseModel *model = _dataArray[indexPath.section];
if (model.nLockStatus != 0)
return UITableViewCellEditingStyleDelete|UITableViewCellEditingStyleInsert;
else
return UITableViewCellEditingStyleNone;
}
通过此处后,可以发现有些cell在编辑下已经没有了相应的样式,但此时还有一个问题,当处于编辑时,cell的最左侧始终有一块白的区域。。。。如下图,
解决以上问题原理如下,当tableview处于编辑时,其下的cell会调用layoutSubviews重新进行界面布局,所以我们只需要在这里面进行相应处理即可,所以我们通过重写UITableViewCell子类的layoutSubviews即可实现上述需求
[objc] view
plaincopy
XXXUITableViewCell.m
[objc] view
plaincopy
-(void)layoutSubviews
{
[super layoutSubviews];
if (_model.nLockStatus == 0)
{
CGRect frame = self.contentView.frame;
frame.origin.x = 0;
self.contentView.frame = frame;
}
}
[objc] view
plaincopy
最终实现效果如下
对editingStyleForRowAtIndexPath 对相应的cell进行相应的属性设置
[objc] view
plaincopy
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
CourseModel *model = _dataArray[indexPath.section];
if (model.nLockStatus != 0)
return UITableViewCellEditingStyleDelete|UITableViewCellEditingStyleInsert;
else
return UITableViewCellEditingStyleNone;
}
通过此处后,可以发现有些cell在编辑下已经没有了相应的样式,但此时还有一个问题,当处于编辑时,cell的最左侧始终有一块白的区域。。。。如下图,
解决以上问题原理如下,当tableview处于编辑时,其下的cell会调用layoutSubviews重新进行界面布局,所以我们只需要在这里面进行相应处理即可,所以我们通过重写UITableViewCell子类的layoutSubviews即可实现上述需求
[objc] view
plaincopy
XXXUITableViewCell.m
[objc] view
plaincopy
-(void)layoutSubviews
{
[super layoutSubviews];
if (_model.nLockStatus == 0)
{
CGRect frame = self.contentView.frame;
frame.origin.x = 0;
self.contentView.frame = frame;
}
}
[objc] view
plaincopy
最终实现效果如下
相关文章推荐
- Android端OCR技术在身份证识别中的应用
- 模板的模板参数匹配报错问题
- POJ 3274 Gold Balanced Lineup hash
- Java 接口 实现和继承关系与区别
- android新组件RecyclerView使用介绍和进阶使用,替用Gallery
- git 删除index.lock文件
- 字符串深入学习
- android开发之记录ListView滚动位置
- PE文件结构部分解析以及输入的定位
- js调用百度地图搜索功能
- android开发之记录ListView滚动位置
- web 间的通信问题解决方案
- 正则表达式
- Sphinx语音识别学习记录 (三)-小范围语音英文识别
- ZOJ 2872 Binary Partitions
- 开源视频图像处理算法
- 计算程序运行的时间一个函数
- 最快最简单的排序—桶排序
- spring security
- 颜色的意象