点击选中cell后改变cell的样式
来源:互联网 发布:php当中的 k 编辑:程序博客网 时间:2024/05/01 14:30
项目里有一个需求,选中的收货地址和其他的收货地址样式不同
选中之后,要动态的改变cell的样式,并在返回上一个控制器的时候更新显示,
上一个控制器需要更改的显示,如下图所示:
之前想通过点击cell触发cell的-(void)layoutSubviews函数,进行子控件frame的改变,没被选中的cell,打钩的UIImageView的frame设置为0,被选中的设置为相应的正常尺寸,其他的控件的frame依次进行改变。后来还是觉得直接加载两种cell比较方便。因此绘制了两种不同的cell,一种是被选中的,一种是为被选中的。
设置一个标志位
@property (nonatomic,assign) int indexSlected;
这个标志位记录被选中的cell的indexPath.row,每次被选中之后,就改变标志位的值,并且在UITableView reloadData的时候,加载不同的cell.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row == _indexSlected) { GCSlectedAddressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellID2"]; cell.model = _addressArrs[indexPath.row]; cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; }else{ GCAddressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellID1"]; cell.model = _addressArrs[indexPath.row]; cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; }}
选中之后还要更新上一个控制器的页面。我选择使用通知的方式,在点击cell的时候就发出通知,附带上对应的标志位的数值,上一个控制器收到之后,就从模型数组中,加载对应的model。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ _indexSlected = (int)indexPath.row; [_mainTableView reloadData]; NSDictionary *info = @{@"info":[[NSString alloc]initWithFormat:@"%d",_indexSlected]}; [[NSNotificationCenter defaultCenter]postNotificationName:@"selectAddress" object:nil userInfo:info];}
上一个控制器接收到通知后:
#pragma mark -接收到消息,更新地址-(void)renewSelecteAddress:(NSNotification *)notification{ NSString *seletedIndexStr = notification.userInfo[@"info"]; _indexSelectedAddress = seletedIndexStr.intValue; [_mainTableView reloadData];}
注意上一个控制器中也有一个标志位_indexSelectedAddress
0 0
- 点击选中cell后改变cell的样式
- TableView 点击cell,改变选中cell的高度
- TableView 点击cell,改变选中cell的高度
- ios collectionView点击后只选中一个cell并改变样式
- 点击tableview里的cell后改变cell的背景图片
- iOS Uitableview的cell的选中样式
- iOS Uitableview的cell的选中样式
- tableView cell 选中颜色的改变
- 点击某一个cell改变单个cell的高度
- cell改变删除按钮的样式
- 更改cell选中后的颜色
- 更改cell选中后的颜色
- 点击cell动态改变cell高度
- Cell点击后返回上页 取消选中状态
- 点击cell Push一个控制器后再返回来让cell取消选中
- 点击后的cell为自定义颜色
- tableview 自定义cell 点击cell改变cell中的label.text的字体颜色,cell复用出现问题
- tableview 自定义cell 点击cell改变cell中的label.text的字体颜色,cell复用出现问题
- 对于书籍《Maven实战》学习过程所使用到的命令总结(二)
- Apache2网页客户端学习——图片无法…
- Maven坐标——《Maven》实战学习总结
- 1--IPv6编程基础篇《为何输入对方…
- Eclipse项目发布后,Tomcat目录下找不到项目解决方法
- 点击选中cell后改变cell的样式
- 2—IPv6编程Linux篇,‘long un…
- macOS Sierra安装Apache2.4+PHP7.0+MySQL5.7.16
- vmware安装ubuntu后,窗口居中不适应屏幕解决方法
- 3—IPv6编程,windows篇
- ubuntu下学习hadoop记录
- 4—IPv6编程windows篇,client篇
- Cannot change version of project facet Dynamic web
- Win64 GTK+3编程【1】dev-cpp…