允许转载,但附上点击打开链接

库所在:https://github.com/harde1/CommonTableCollectView

把上面那样的界面,用CommonTableCollectView库做出来

首先是xib的布局方案:

遵守一个条件,布局不能出现歧义,上下支撑高度的条件只有一个

controller的代码如下:

#import "ViewController.h"
#import "CommonTableView.h"@interface ViewController ()
@property (weak, nonatomic) IBOutlet CommonTableView *tv_test;
@property(nonatomic,strong)UIButton * btn_delect;
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"删除" style:UIBarButtonItemStylePlain target:self action:@selector(delete:)];for (int i=0; i<2; i++) {[self.tv_test addNibWithEntity:[@{@"html":@"<html><body>\"这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字:<a href=\'http://www.baidu.com\'>http://www.baidu.com\"</body></html>",@"isDelete":@(NO),@"isSelected":@(NO)}mutableCopy] andCellName:@"Cell_test"];}}-(UIButton *)btn_delect{if (!_btn_delect) {_btn_delect = [UIButton buttonWithType:UIButtonTypeSystem];_btn_delect.frame = CGRectMake(0, 0, self.view.frame.size.width, 60);[_btn_delect addTarget:self action:@selector(clickDelect:) forControlEvents:UIControlEventTouchUpInside];[_btn_delect setTitle:@"删除" forState:UIControlStateNormal];_btn_delect.backgroundColor = [UIColor redColor];}return _btn_delect;}-(void)delete:(id)sender{_isDelete = !_isDelete;for (NSMutableDictionary * dict in _tv_test.arr_dataSource[0]) {dict[@"isDelete"]= @(_isDelete);}[_tv_test reloadData];if (_isDelete) {_tv_test.tableFooterView = self.btn_delect;}else{[self.btn_delect removeFromSuperview];_tv_test.tableFooterView = nil;}}-(void)clickDelect:(UIButton *)btn{NSArray * arr_result = @[];@try {NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isSelected = YES"];arr_result = [_tv_test.arr_dataSource[0] filteredArrayUsingPredicate:predicate];}@catch (NSException *exception) {NSLog(@"%@",exception);}@finally {NSLog(@"拿到的要删除的家伙:%@",arr_result);}NSMutableArray * arr = [@[]mutableCopy];for (NSMutableDictionary * dict in arr_result) {NSUInteger row = [_tv_test.arr_dataSource[0] indexOfObject:dict];NSIndexPath * indexPath = [NSIndexPath indexPathForRow:row inSection:0];[arr addObject:indexPath];}for (NSIndexPath * indexPath in arr) {[_tv_test removeIndexPath:indexPath withRowAnimation:UITableViewRowAnimationLeft];}}@end

xib的代码如下:

#import "Cell_test.h"@implementation Cell_test-(void)setParams:(id)params{[super setParams:params];if (params) {NSString * htmlString = params[@"html"];NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];self.lb_content.attributedText = attrStr;self.tvf_content.editable = NO;self.tvf_content.attributedText = attrStr;self.iv_center.layer.cornerRadius = 30;self.iv_center.layer.masksToBounds = YES;self.iv_center.backgroundColor = [UIColor redColor];self.btn_select.layer.cornerRadius = 15;self.btn_select.layer.masksToBounds = YES;[self.btn_select addTarget:self action:@selector(clickSelect:) forControlEvents:UIControlEventTouchUpInside];if ([params[@"isSelected"] boolValue]) {self.btn_select.backgroundColor = [UIColor redColor];}else{self.btn_select.backgroundColor = [UIColor whiteColor];}if ([params[@"isDelete"] boolValue]) {self.cons_leading.constant = 100;}else{self.cons_leading.constant = 10;for (NSMutableDictionary * dict in self.tableView.arr_dataSource[0]) {dict[@"isSelected"] = @(NO);}}}}-(void)clickSelect:(UIButton *)btn{self.params[@"isSelected"] = @(![self.params[@"isSelected"] boolValue]);if ([self.params[@"isSelected"] boolValue]) {self.btn_select.backgroundColor = [UIColor redColor];}else{self.btn_select.backgroundColor = [UIColor whiteColor];}}@end

核心就是几句:

  [self.tv_test addNibWithEntity:[@{@"html":@"<html><body>\"这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字这是一堆文字:<a href=\'http://www.baidu.com\'>http://www.baidu.com\"</body></html>",@"isDelete":@(NO),@"isSelected":@(NO)}mutableCopy] andCellName:@"Cell_test"];

CommonTableCollectView:使用例子,增删cell,以及label解析html相关推荐

  1. KITTI数据集-label解析

    参考:KITTI数据集--label解析与传感器间坐标转换参数解析_苏源流的博客-CSDN博客 KITTI数据集是自动驾驶领域最知名的数据集之一. 一.kitti数据集,label解析 16个数代表的 ...

  2. OGRE例子:Demo_Ocean 源码解析

    因为最近在做水,所以这篇海洋的例子是必须要读懂的.耐着性子看了一下,还是能看懂的.现在将代码解析放上来.程序共有四个文件:MaterialControls.h :MaterialControls.cp ...

  3. cell和label换行的问题

    [改:如果你把行数默认成0的话 他会自适应行数 也就是说 你内容有多少行他就多少行 但是frame还是要自己设置] 计算行数 [计算移动距离不需要通过行数.] str为输入内容  move 为算出 当 ...

  4. java 注册忘记密码操作_Java实战项目(1):swing图书管理系统的登录,注册,找回密码,增删查,个人解析等...

    SQL部分: drop table yonghu, shangpin,dingdanxiangqing,sp_Type drop table shangpin select * from yonghu ...

  5. android 有序广播例子,有序广播的实例解析--android案例《拦截有序广播》

    有序广播: 使用有序广关健处在于定义接收者的优先权,以下代码中有三个类接收广播, 案例<拦截有序广播> 1.布局文件 上述布局文件,定义了一个button按钮,并且为按钮注册了一个oncl ...

  6. android 短视频例子,Android短视频开发解析,什么才是开发的重点

    随着短视频的潮流席卷祖国大地,进行Android短视频开发的朋友们也越来越多了,相信很多朋友在进行短视频开发.平台搭建的时候会有点蒙,短视频这么多功能,哪个是重点呀? 接下来就为大家讲解一下,Andr ...

  7. java 策略模式例子_java策略模式实例解析

    1.策略模式概述: 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并让它们可以相互替换.策略模式让算法独立于使用它的客户而变化,也称为政策模式.策略模式是一种行为型 ...

  8. Qt文档阅读笔记-stackUnder官方解析与实例

    目录 官方解析 博主例子 官方解析 这里可以配合raise()和lower()这两个函数来使用! 博主例子 用2个label,点击谁谁就浮在界面的最上面,很简单的代码,程序运行截图如下: 源码如下: ...

  9. Excel解析工具easyexcel全面探索

    1. Excel解析工具easyexcel全面探索 1.1. 简介 之前我们想到Excel解析一般是使用POI,但POI存在一个严重的问题,就是非常消耗内存.所以阿里人员对它进行了重写从而诞生了eas ...

最新文章

  1. oracle的用户自定义异常
  2. 【转】FPGA+CPU:并行处理大行其道
  3. tcp的无延时发送_腾讯网红程序员,详解带宽、延时、吞吐率、PPS 这些都是啥?...
  4. 江南百景图自动刷水井,附带拼图教程
  5. python tkinter画布中使用turtle_[Tkinter canvas of Python]海龟图书馆,python,之,tkinter,画布,Turtle,库...
  6. Java基础——类加载机制及原理
  7. 请描述定时器初值的计算方式_51单片机定时器初值计算器
  8. 【R图秀】情人节快乐!
  9. Linux宝库名人轶事栏目 | 智能化之边缘计算浅析
  10. 使用PHP和JS对小米主题商店下载地址解析
  11. String Shifting
  12. unity3d实现飞行模拟
  13. 从SPS帧解析视频分辨率
  14. 把开发板挂载到Ubuntu
  15. PC微信3.7.0将本地文件从MsgAttach文件夹转移回原先的File文件夹
  16. Refused to display in a frame because it set ‘X-Frame-Options‘ to ‘sameorigin‘.
  17. 常用电平LVTTL、LVCMOS、LVDS、CML的标准和区别
  18. 适合程序员的耳机_有没有适合程序员打代码时用的耳机推荐?
  19. ASP判断手机号码输入是否正确正则代码
  20. 跟我学ShardingSphere之ShardingProxy

热门文章

  1. kali 2020 VMware 15.5.1 启动时出错 before you can run vmware, several modules must be complied and……
  2. 记一次用java从海康ISC下载rtsp历史数据过程
  3. Ubuntu18.04(Bionic)安装CM6.3.1+CDH6.3.2
  4. Android 酷我音乐API抓取
  5. 音频隐写术:分析剑桥大学提出的MP3Stego算法
  6. Linux 命令之管道命令
  7. 每一个搞爬虫的人,都应该知道的神器!
  8. 单位公派|消化内科医生赴美国藤校耶鲁大学访学
  9. Java编程:RandomAccess接口
  10. 鼠标悬停在一个标签上时,显示一段文字