当前位置: 首页 > news >正文

动态小网站商丘网站建设有限公司

动态小网站,商丘网站建设有限公司,厦门网站建设方案服务,红铃铛网站建设目录 前言 1.原理 2.折叠 cell 的点击选中 3.折叠 cell 高度的变化 4.实现效果 5.总结 前言 折叠 cell 是在 3GShare 中写过的一个小控件,这篇博客是一个小小的总结。 1.原理 在这里的核心就是我们可以通过改变按钮的 tag 值来判断我们是否应该展开还是回收…

目录

前言

1.原理

2.折叠 cell 的点击选中

3.折叠 cell 高度的变化

4.实现效果

5.总结


前言

折叠 cell 是在 3GShare 中写过的一个小控件,这篇博客是一个小小的总结。

1.原理

在这里的核心就是我们可以通过改变按钮的 tag 值来判断我们是否应该展开还是回收,还有就是我们还可以通过代码来改变我们的 cell 的行数,并且可以通过- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath这个方法来实现点击单元格的切换。

2.折叠 cell 的点击选中

- (void)toggleFold {if (self.zhedie.tag == 1002) {// 折叠
//        [self.zhedie setTitle:@"展开" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向左箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 20);self.zhedie.tag = 1001;} else {// 展开
//        [self.zhedie setTitle:@"折叠" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向下箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 80);self.zhedie.tag = 1002;}[self.tableView reloadData];
}
- (void)pressUp:(UIButton *)btn {[self toggleFold];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {if (indexPath.section == 1) {self.selectedItem = self.dataArray[indexPath.row];[self toggleFold];}
}

我在这里使用了一个函数来封装我的 cell 的收缩和展开,因为在点击按钮和点击表格都要实现切换。

3.折叠 cell 高度的变化

在这里我会给出通过按钮 tag 值来改变 tableView 的高度的点击函数。

- (void)toggleFold {if (self.zhedie.tag == 1002) {// 折叠
//        [self.zhedie setTitle:@"展开" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向左箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 20);self.zhedie.tag = 1001;} else {// 展开
//        [self.zhedie setTitle:@"折叠" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向下箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 80);self.zhedie.tag = 1002;}[self.tableView reloadData];
}
- (void)pressUp:(UIButton *)btn {[self toggleFold];
}

4.实现效果

5.总结

这里我给出完整的代码

#import "ViewController.h"@interface ViewController () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *dataArray;
@property (nonatomic, strong) UIButton *zhedie;
@property (nonatomic, strong) NSString *selectedItem;
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.dataArray = [NSMutableArray arrayWithObjects:@"cell1", @"cell2", @"cell3", nil];self.selectedItem = self.dataArray.firstObject;// tableViewself.tableView = [[UITableView alloc] initWithFrame:CGRectMake(270, 200, 95, 20)style:UITableViewStylePlain];self.tableView.delegate = self;self.tableView.dataSource = self;[self.view addSubview:self.tableView];self.zhedie = [UIButton buttonWithType:UIButtonTypeSystem];self.zhedie.frame = CGRectMake(270 + 95, 200, 40, 20);self.zhedie.backgroundColor = [UIColor clearColor];
//    [self.zhedie setTitle:@"展开" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向左箭头"] forState:UIControlStateNormal];[self.zhedie setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];[self.zhedie addTarget:self action:@selector(pressUp:) forControlEvents:UIControlEventTouchUpInside];self.zhedie.tag = 1001;
}- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return (self.zhedie.tag == 1001) ? 1 : 2;
}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {if (self.zhedie.tag == 1001) {return 1;} else {if (section == 0) return 1;return self.dataArray.count;}
}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {return 20;
}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {NSString *cellID = @"ID";UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];if (!cell) {cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];}if (self.zhedie.tag == 1001) {cell.textLabel.text = self.selectedItem;} else {if (indexPath.section == 0) {cell.textLabel.text = self.selectedItem;cell.backgroundColor = [UIColor colorWithWhite:0.9 alpha:1];} else {cell.textLabel.text = self.dataArray[indexPath.row];cell.backgroundColor = [UIColor whiteColor];}}cell.textLabel.font = [UIFont systemFontOfSize:12.0];return cell;
}
- (void)toggleFold {if (self.zhedie.tag == 1002) {// 折叠
//        [self.zhedie setTitle:@"展开" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向左箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 20);self.zhedie.tag = 1001;} else {// 展开
//        [self.zhedie setTitle:@"折叠" forState:UIControlStateNormal];[self.zhedie setImage:[UIImage imageNamed:@"向下箭头"] forState:UIControlStateNormal];self.tableView.frame = CGRectMake(270, 200, 95, 80);self.zhedie.tag = 1002;}[self.tableView reloadData];
}
- (void)pressUp:(UIButton *)btn {[self toggleFold];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {if (indexPath.section == 1) {self.selectedItem = self.dataArray[indexPath.row];[self toggleFold];}
}
@end

http://www.dtcms.com/a/543504.html

相关文章:

  • 邮件网站排名wordpress自定义分页
  • 静安西安网站建设兴平市住房和城乡建设局门户网站
  • 做it题的网站网站的链接要怎么做
  • 品牌网站建设的意义wordpress 3.9.1 中文
  • 有了网站怎样做公众号大学生网站模板
  • 便捷网站建设费用某班级网站建设方案论文
  • 网站建设标书样本设计公司logo用什么软件
  • python在线网站湛江h5建站
  • 电子商务网站建设详细策划书长沙网站建设定制
  • 如何做淘宝网网站域名wordpress 加一个form
  • 个人网站报价一键建站系统有哪些
  • 网站建设丶金手指a排名15南京网站设计公司兴田德润放心
  • 网站系统流程图wordpress卡片式主题
  • 广州营销推广网站网上国网app推广方案
  • 视频拍摄剪辑培训宁波正规seo企业优化
  • 最出名的网站建设公司服装企业官方网站
  • 虚拟主机销售网站源码电脑网页制作软件有哪些
  • 外贸网站制作方案建立网站有什么要求
  • php简易购物网站开发张家口高新区做网站
  • 和平手机网站建设商家推广平台有哪些
  • 网站改标题WordPress注册免发邮件
  • 龙岗菠菜网站建设深圳市国外网站建设服务机构
  • 温州平阳县网站建设兼职小企业网站建设菌算
  • 网站开发综合实训记录周记网站做app的软件有哪些
  • dede网站模板怎么安装教程龙华网站建设方案咨询
  • 开发网站去哪里学郑州汉狮哪家做网站好
  • 建设招标网 手机官方网站建一个个人网站一年多少钱
  • 百度收录万网空间的网站需要多久网页数据库系统怎么做
  • 外贸网站都有哪些wordpress 段落背景颜色
  • 深圳招聘网站大全井研移动网站建设