全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

IOS购物车界面实现效果示例

购物软件不可避免有添加购物车的页面,那么购物车功能是怎么实现的呐?这里提供一种简单的思路,插入本地数据库。

先看效果

页面结构

本页面是由一个tableview和底部的底部的bottomView构成

底部的bottomView上有按钮,也可以添加其他属性,比如总价格,总重量等参数。

代码结构


思路

看到这样的需求,我想到的是插入本地数据库,每一条数据都有对应的id和其他的例如价格等的参数,根据id插入本地是一条可行的方法,为了避免刷新的时候选中的单元格和没选中的单元格的复用,我们需要对按钮做一点操作。

@interface CustomButton : UIButton
@property (nonatomic,assign)NSInteger indexPathRow;
@end

在这个GoodCell里面自定义协议,为了取到某一行的值。

最重要的是选中与没选中的按钮要显示不同的颜色

#pragma mark - selectedBtnAction
-(void)selectedBtnAction:(CustomButton *)btn
{
  btn.selected=!btn.selected;
  [self.delegate GoodsCellDelegateWithIndexPath:btn.indexPathRow];
}

-(void)configWithModel:(GoodsModel *)model{
  self.model = model;
  if (model.btnIsSelected==YES) {
    [self.selectedBtn setImage:[UIImage imageNamed:@"sendcar_selected"] forState:UIControlStateNormal];
  }else{
    [self.selectedBtn setImage:[UIImage imageNamed:@"sendcar_unselected"] forState:UIControlStateNormal];
  }
  //运单号
  self.cardLabel.text = [NSString stringWithFormat:@"运单号:%@",self.model.Ticket_No];
}

控制器界面

代理协议的实现

#pragma mark - delegate
-(void)GoodsCellDelegateWithIndexPath:(NSInteger)indexPathRow
{

  GoodsModel *cacheModel = self.dataArr[indexPathRow];
  if (cacheModel.btnIsSelected) {
//    NSLog(@"YES==%@",cacheModel.Ticket_No);
    cacheModel.btnIsSelected = NO;
  } else {
//    NSLog(@"NO==%@",cacheModel.Ticket_No);
    cacheModel.btnIsSelected = YES;
  }
  //插入---删除  反复切换
  [self.dataManager insertDataFromModel:cacheModel Ticket_No:cacheModel.Ticket_No];
   //每次执行插入删除操作就会刷新底部的车辆的按钮
  [self reloadBottonViewUI];
  [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:indexPathRow inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
}
#pragma mark - 刷新底部的选车的数量  reloadBottonViewUI
-(void)reloadBottonViewUI
{
  if ([self.dataManager getAllGoodsArrCount]>0) {
    [self.toSelectCarBtn setTitle:[NSString stringWithFormat:@"去发车(%ld)",(long)[self.dataManager getAllGoodsArrCount]] forState:UIControlStateNormal];
  }else{
    [self.toSelectCarBtn setTitle:@"去发车" forState:UIControlStateNormal];
  }
}

去往下个页面需要选中的有数据

#pragma mark - 去选车
-(void)toSelectCarBtnAction
{
  if ([self.dataManager getAllGoodsArrCount]>0) {
    //do something
    [self showSingleAlertViewWith:self title:@"提示" message:@"do something"];
  }else{
    [self showSingleAlertViewWith:self title:@"提示" message:@"请选择物品"];
  }
}

代码下载:PurchuseCar_Demo_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ios购物车实现  # ios  # 购物车实现demo  # 购物车界面  # iOS实现自定义购物车角标显示购物数量(添加商品时角标抖动 Vie)  # iOS添加购物车动画效果示例  # iOS实现电商购物车界面示例  # iOS搭建简易购物车页面  # 购物车  # 单元格  # 的是  # 就会  # 都有  # 在这个  # 是由  # 是怎么  # 其他的  # 上有  # 自定义  # 请选择  # 不可避免  # 最重要的是  # 本页面  # 下个  # 为了避免  # 先看  # 大家多多  # 复用 


相关文章: 成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何在IIS中新建站点并解决端口绑定冲突?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  在线教育网站制作平台,山西立德教育官网?  如何在建站主机中优化服务器配置?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  网站网页制作专业公司,怎样制作自己的网页?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何快速辨别茅台真假?关键步骤解析  宝塔Windows建站如何避免显示默认IIS页面?  SQL查询语句优化的实用方法总结  简历在线制作网站免费版,如何创建个人简历?  如何在IIS中配置站点IP、端口及主机头?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  建站之星2.7模板:企业网站建设与h5定制设计专题  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  建站之星多图banner生成与模板自定义指南  如何通过FTP空间快速搭建安全高效网站?  如何使用Golang安装API文档生成工具_快速生成接口文档  在线制作视频网站免费,都有哪些好的动漫网站?  如何用PHP工具快速搭建高效网站?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  电商网站制作价格怎么算,网上拍卖流程以及规则?  ,网站推广常用方法?  建站主机是否属于云主机类型?  太平洋网站制作公司,网络用语太平洋是什么意思?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  行程制作网站有哪些,第三方机票电子行程单怎么开?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何正确下载安装西数主机建站助手?  魔方云NAT建站如何实现端口转发?  如何在服务器上配置二级域名建站?  C#怎么使用委托和事件 C# delegate与event编程方法  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  深入理解Android中的xmlns:tools属性  高端建站如何打造兼具美学与转化的品牌官网?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  实例解析Array和String方法  建站之星如何快速解决建站难题?  建站之星如何实现PC+手机+微信网站五合一建站?  建站主机如何安装配置?新手必看操作指南  高性能网站服务器配置指南:安全稳定与高效建站核心方案  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  建站之星如何防范黑客攻击与数据泄露?  ,购物网站怎么盈利呢?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在自有机房高效搭建专业网站?  如何高效利用亚马逊云主机搭建企业网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。