ios 有很多种cell时的写法 以及 autolayout 的使用

  1  //当有很多种cell时的写法-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  2 {
  3     return [self.theDataSource getCellHeightByPath:indexPath];
  4 }
  5 -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  6 {
  7
  8     NSString *reuseid = [self.theDataSource getReuseIdentityByPath:indexPath];
  9     BSBaseTableCell* cell = (BSBaseTableCell*)[tableView dequeueReusableCellWithIdentifier:reuseid];
 10     if (!cell) {
 11         Class cls = [self.theDataSource getCellClassByPath:indexPath];
 12         cell = [[cls alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseid];
 13
 14         if ([cell isKindOfClass:[BSBaseTableCell class]])
 15         {
 16             cell.delegate = self.cellDelegate;
 17         }
 18
 19     }
 20     BSLog(@"%@", NSStringFromClass(cell.class));
 21     BSBaseCellData* data = [self.theDataSource getDataByIndexPath:indexPath];
 22
 23     if ([cell isKindOfClass:[BSBaseTableCell class]]) {
 24         if (self.theDataSource.isInSelectingMode) {
 25
 26             WSO(wss, cell)
 27             [UIView animateWithDuration:0.2 animations:^{
 28                 [cell.contentView mas_remakeConstraints:^(MASConstraintMaker *make) {
 29                     make.left.top.bottom.equalTo(wss);
 30                     make.right.equalTo(wss.mas_right).offset(-36);
 31                 }];
 32                 [self layoutIfNeeded];
 33             } completion:^(BOOL finished) {
 34                 cell.selectedForEdit = data.selectedForEdit;
 35                 [UIView animateWithDuration:0.1 animations:^{
 36                     [cell.selectView mas_remakeConstraints:^(MASConstraintMaker *make) {
 37                         make.size.mas_equalTo(CGSizeMake(20, 20));
 38                         make.top.equalTo(wss).offset(20);
 39                         make.right.equalTo(wss.mas_right).offset(-15);
 40                     }];
 41                     [self layoutIfNeeded];
 42                 }];
 43             }];
 44
 45             cell.isInSelectingMode = YES;
 46         }
 47         else
 48         {
 49             if (cell.isInSelectingMode) {
 50                 WSO(wss, cell)
 51                 [UIView animateWithDuration:0.2 animations:^{
 52                     [cell.contentView mas_remakeConstraints:^(MASConstraintMaker *make) {
 53                         make.left.right.top.bottom.equalTo(wss);
 54                     }];
 55                     [self layoutIfNeeded];
 56                 }];
 57                 [cell.selectView mas_remakeConstraints:^(MASConstraintMaker *make) {
 58                     make.size.mas_equalTo(CGSizeMake(20, 20));
 59                     make.top.equalTo(wss).offset(20);
 60                     make.right.equalTo(wss.mas_right).offset(20);
 61                 }];
 62             }
 63             cell.isInSelectingMode = NO;
 64
 65         }
 66
 67
 68         if ([cell respondsToSelector:@selector(setData:)]) {
 69             [cell setData:data];
 70         }
 71         if ([data isKindOfClass:[BSBaseCellData class]]) {
 72             cell.accessoryType = data.cellAccessoryType;
 73         }
 74
 75     }
 76     else
 77     {
 78         if ([cell respondsToSelector:@selector(setCellData:)]) {
 79             [cell setCellData:data];
 80         }
 81
 82     }
 83     if ([cell respondsToSelector:@selector(setSeparatorLineVisible:)] && [data isKindOfClass:[BSBaseCellData class]]) {
 84         [cell setSeparatorLineVisible:!data.isHideLine];
 85     }
 86     return cell;
 87 }
 88 //autolayout 使用
 90
 91 WS(ws);
 92 //        [lab mas_makeConstraints:^(MASConstraintMaker *make) {
 93 //            make.centerY.equalTo(ws);
 94 //            make.left.equalTo(ws.mas_left).offset(BookRoomView_LeftSpace);
 95 //        }];
 96 //
 97 //        [style mas_makeConstraints:^(MASConstraintMaker *make) {
 98 //            make.left.equalTo(lab.mas_right).offset(6);
 99 //            make.centerY.equalTo(ws);
100 //        }];
101 //        [label mas_makeConstraints:^(MASConstraintMaker *make) {
102 //            make.right.equalTo(ws.mas_right).offset(-100);
103 //            make.centerY.equalTo(ws.mas_centerY);
104 //        }];
105 //        [zuopin mas_makeConstraints:^(MASConstraintMaker *make) {
106 //            make.left.equalTo(label.mas_right).offset(6);
107 //            make.centerY.equalTo(ws.mas_centerY);
108 //        }];
109 这个是masonry适配的代码,用的时候要记得WS(ws) he WS(wso,object)应为block避免循环应用,我这个没加
时间: 2024-08-10 00:00:08

ios 有很多种cell时的写法 以及 autolayout 的使用的相关文章

iOS开发UITableViewCell的选中时的颜色设置

1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = UITableViewCellSelectionStyleBlue; //灰色 cell.selectionStyle = UITableViewCellSelectionStyleGray; 2.自定义颜色和背景设置 改变UITableViewCell选中时背景色: UIColor *color

iOS程序调试和发布时遇到的问题

最近接手一个项目,在用真机调试时出现了“Your build settings specify a provisioning profile with the UUID “”, however, no such provisioning profile was found”的出错.一直提示指定UUID的provisioning profile找不到,感觉很奇怪.明明自己的provisioning profile是刚下载好的,并且全是新安装.于是通过谷歌找到了答案. 参考地址:http://sta

iOS中TableViewController的cell重用出错(内容错乱)

iOS中TableViewController的cell重用出错(内容错乱) - 简书 时间 2016 用我的双手,成就你的梦想 ---栋哥 今天我的心爱的程序又出现bug,对于我这个小菜来说,不得不说是非常苦恼的,主要是cell加载的时候因为重用池的问题而出现各种的bug,虽然程序没有崩掉,但是大大影响到我的心情,下面是最主要的一个问题 ,就是cell的重用问题, cell因为从重用池中调取,没有及时删除上面的内容而导致内容的各种出现, 这里有几个解决方案. UITableView继承自UIS

javascript中的location.href有很多种用法

javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面 location.href="/url" 当前页面打开URL页面 windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同. this.location.href="/url" 当前页面打开URL页面 parent.location.h

2. 软件有很多种,也有各种分类办法: ShrinkWrap (在包装盒子里面的软件,软件在CD/DVD上); Web APP (基于网页的软件); Internal Software (企业或学校或某组织内部的软件); Games (游戏); Mobile Apps (手机应用); Operating Systems (操作系统); Tools

 选取对你最相关的一类软件,  请回答:(web app)  1) 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的?  他们的目标都是盈利么?  他们的目标都是赚取用户的现金么?还是别的?        web最早起源于1980年蒂姆·伯纳斯-李构建的ENQUIRE项目,后英国人Tim Berners-Lee在1989年提出的web应用架构技术.从1992年开始兴起的技术包括JAVA,Javascript,Flash,Browers等技术的兴起,web app和桌

“关系”有很多种,有直接关系、有关系的关系、有上层关系、有下层关系(转)

就这样,在大公司刚刚工作两天的时间,再次跳槽到一个小公司.对外宣传有近100人的公司,实际上只有20多人.我知道这样做是冒风险的,最坏的情况无非是再找工作,还不至于造成很大的压力. 实际上,这个公司缺少了一腿,销售.市场能力不强.严格上的销售人员只有两个:老板和一位女同事.老板有50多岁了,这位女同事30多岁,这位女同事的官方职位是总经理助理或是秘书一类的.销售只有老板一个人挑大梁,凭借老板是电力行业出身,这种销售的主要方式是靠关系.而这个公司有20多年的发展史了,从存在的角度来说,公司或老板是

iOS 在TableView的Cell之间设置空白间隔空间

1.设置section的数目,即是你有多少个cell - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 3; // in your case, there are 3 cells } 2.对于每个section返回一个cell - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)secti

iOS 创建静态库文件时去掉其中的Symbols

在工程中创建静态库文件时,默认会将一些Symbols加到静态库文件中,这样做有两个缺点: 1.如果引用静态库文件的工程中发生了bug,就会直接跳转到静态库的源码. 2.静态库文件的大小会因此翻几番.本人最近做的这个静态库文件中,去掉symbols前大小为7.8MB左右,去掉以后大小为2.8MB. 要去掉Symbols,首先打开Build Settings并选中静态库的Target,然后设置下列选项: 如果有错误或遗漏,欢迎批评指正. iOS 创建静态库文件时去掉其中的Symbols,布布扣,bu

爱,有很多种方式表达

爱,有很多种方式表达,或真或假,但融于情,浓过情,没有选择,因为爱:没有后悔,因为爱.    有个女人,让我爱她二十多年了,从孩子堤时代开始,或者是一见衷情,但又是一厢情怨,曾经为她的一眸一颦而欢喜,也为她的一怒一哀而伤心.    有首诗说得很赤白:我是曾经多么多么的爱着她.    现实却是:我一无所有.    有首歌唱道:我就跟你一起走,爱我一无所有.因为你是我的全部.    而孩堤的厢情最终被现实灰灰烟灭,我知道,我在乎你,但我有时候却喜欢身边的女人,有道是男人好色.    最终你披着别人的