iOS购物功能之Sku选择效果调研

关于安卓Sku思路.——参考博客

相关概念:

  • SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。
  • SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。
  • 单品:对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性与其他商品存在不同时,可称为一个单品。

最近公司有添加SKU功能的需求。之前这块原计划由同事负责。后来计划有变,由我负责。同事把之前调研的一个Demo发给了我。由OC写成。运行之后看效果优良,就阅读源码,为了减少文件量,我翻译成了Swift版。Demo由同事给我,不知道出处,如果原作者有缘看到文章并下载,看到像自己的作品,不必惊讶,请留下痕迹。

iOS购物功能之Sku选择效果调研_第1张图片
Simulator Screen Shot 2016年12月3日 下午4.55.58.png
代码小简介:

把Sku选择部分封装成了视图类StandardsView 实例化一个Sku视图let standView = StandardsView(frame:CGRect.zero)
配置商品图片、价格信息、Title提示 以及 自定义按钮
standView.mainImgView.image = img standView.priceLab.text = "¥100.0" standView.tipLab.text = "请选择规格" standView.goodNum.text = "库存 10件" standView.customBtns = ["加入购物车","立即购买"]
配置商品属性模型:

    let tempClassInfo1 = standardClassInfo(class_Id: "100", stand_ClassName: "红色")
    let tempClassInfo2 = standardClassInfo(class_Id: "101", stand_ClassName: "蓝色")
    let tempClassInfoArr = [tempClassInfo1,tempClassInfo2]
    let tempModel = StandardModel.standardModel(classInfo: tempClassInfoArr, standName: "颜色")

    let tempClassInfo3 = standardClassInfo.standard_ClassInfo(classId: "102", standClassName: "XL")
    let tempClassInfo4 = standardClassInfo.standard_ClassInfo(classId: "103", standClassName: "XXL")
    let tempClassInfo5 = standardClassInfo.standard_ClassInfo(classId: "104", standClassName: "XXXL")
    let tempClassInfoArr2 = [tempClassInfo3,tempClassInfo4,tempClassInfo5]
    let tempModel2 = StandardModel.standardModel(classInfo: tempClassInfoArr2, standName: "尺寸")

    standView.standardArr = [tempModel,tempModel2]

代理方法:

//MARK:standardView Delegate
/*自定义按键*/
func standardView(standardsView: StandardsView, cusBtnAction: UIButton) {
    if cusBtnAction.tag == 0 {
        //将商品图片抛到指定点
        standardsView.throwGood(desPoint: CGPoint.init(x: 200, y: 100), duration: 1.6, height: 150, scale: 20)
    }else{
        standardsView.dismiss()
    }
}

/*点击规格代理*/
func standardView(standardsView: StandardsView, selBtnAction: UIButton, selID: String, standName: String, idx: NSInteger) {
    NSLog("selectID = %@  standName = %@  index = %ld", selID,standName,idx)
}

//设置自定义Btn的属性
func standardView(standardsView: StandardsView, btn: UIButton) {
    if btn.tag - 100 == 0 {
        btn.backgroundColor = UIColor.yellow
    }else if(btn.tag - 100 == 1){
        btn.backgroundColor = UIColor.orange
    }
}
  • 一共三种动画效果 使用枚举进行配置

enum StandsViewShowAnimationType : NSInteger { case FromBelow = 0,Flash,ShowFromLeft,Custom = 0xFFFF } enum StandsViewDismissAnimationType : NSInteger { case DisFromBelow = 0,Flash,DisToRight,Custom = 0xFFFF }

想看效果就下载代码运行一下。
感谢原作者和我同事的分享,写这篇文章,一个为记录,一是为发扬受人分享、分享予人精神。
欢迎感兴趣的同行吐槽、使用、继续完善、提意见、教做人等。

你可能感兴趣的:(iOS购物功能之Sku选择效果调研)