美文网首页
优惠券功能总结

优惠券功能总结

作者: 不存在的昵称 | 来源:发表于2018-06-12 10:59 被阅读0次

    优惠券功能总结

    注:项目添加了优惠券功能,在此总结经验

    界面主要是:UITableView
    优惠卷的类型有4种,其中3种是样式相同,背景颜色不同,以下称为A1,A2,A3。另一种称为B。

    开始的时候我是打算就用一个UITableViewCell类来完成这4种样式的。但是只能在拿到数据之后才能知道具体类型,所以我在给cell赋值数据的API里面创建布局控件。其中使用了CAGradientLayerCAShapeLayer

    出现了一个奇怪的显示问题。
    问题:在cell的数量较少,不能被tableView复用的时候,显示正常。在cell的数量较多,tableView能复用cell的时候,子layer的路径会出现变化

    --

    我并没解决好这个问题。而是使用了另一个类来搭建B的样式。

    --

    后来我想了一下,用一个类来做也可以,使用两个注册cellID。
    UITableViewCell- initWithStyle:reuseIdentifier:方法中
    根据 cellID 来搭建不同的样式。

    --

    实现方法:

    创建一个优惠券基类 : CouponBaseCell
    A样式的优惠券 : ACouponBaseCell : CouponBasseCell
    B样式的优惠券 : BCouponBaseCell : CouponBaseCell

    CouponBaseCell 声明 优惠券的相应API

    /// 给优惠券数据
    - (void)setCoponData:(CouponInfo *)data;
    /// 设置优惠券类型
    -  (void)setCoponType:(CouponType)type;
    /// 设置优惠券状态
    -  (void)setCoponState:(CouponState)state;
    

    声明一个点击优惠券的协议 Protocol
    CouponBaseCellDelegate

    ///点击优惠券
    - (void)didSelecteCoupon:(CouponBaseCell *)copon;
    

    CouponBaseCell 添加一个遵守CouponBaseCellDelegate协议的 id 类型的属性。

    @property(nonatomic, weak) id <CouponBaseCellDelegate>delegate;
    

    ACouponBaseCellBCouponBaseCell分别根据对应的需求实现这些API

    相关文章

      网友评论

          本文标题:优惠券功能总结

          本文链接:https://www.haomeiwen.com/subject/zwjleftx.html