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

先看效果
页面结构
本页面是由一个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小时内与您取得联系。