效果图
:
cell里面的 内容:
//
// RedBagCell.swift
// zjfae
//
// Created by CJW on 16/10/19.
// Copyright © 2016年 onight. All rights reserved.
//
import UIKit
private var kCellFrameW : CGFloat = 100
typealias DrawMoney = (dic:PBIFE_kq_getMyDiscountPage_KaQuanList) -> ()
typealias ClickMoreBlack = (statue:Bool) -> ()
class RedBagCell: UITableViewCell {
var celltype : NSInteger = 0
//提现balck
var drawblack : DrawMoney?
//点击更多
var clickMoreBlack : ClickMoreBlack?
//接收红包字典
var redDataDic = PBIFE_kq_getMyDiscountPage_KaQuanList()
var index : Int?
var str : String?
//上面的View
lazy var view_top: UIView = {
let newUserIcon = UIView.newAutoLayoutView()
return newUserIcon
}()
//红包编号
lazy var lable_code: UILabel = {
let newUserIcon = UILabel.newAutoLayoutView()
return newUserIcon
}()
//金额标志¥
lazy var lable_mark: UILabel = {
let newUserIcon = UILabel.newAutoLayoutView()
return newUserIcon
}()
//红包金
lazy var lable_money: UILabel = {
let lable_money = UILabel.newAutoLayoutView()
return lable_money
}()
//红包类型
lazy var lable_redStyel: UILabel = {
let lable_redStyel = UILabel.newAutoLayoutView()
return lable_redStyel
}()
//浙金红包
lazy var lable_Zhejin: UILabel = {
let lable_Zhejin = UILabel.newAutoLayoutView()
return lable_Zhejin
}()
//波浪线
lazy var image_line: UIImageView = {
let image_line = UIImageView.newAutoLayoutView()
return image_line
}()
//下面白色View
lazy var view_bottom: UIView = {
let view_bottom = UIView.newAutoLayoutView()
return view_bottom
}()
//使用条件
lazy var lable_useShow: UILabel = {
let lable_useShow = UILabel.newAutoLayoutView()
return lable_useShow
}()
//使用内容
// var lable_usecontent = redContent()
//时间
lazy var lable_date: UILabel = {
let lable_useShow = UILabel.newAutoLayoutView()
return lable_useShow
}()
//全部内容
lazy var lable_Mcontent: UILabel = {
let lable_useShow = UILabel.newAutoLayoutView()
lable_useShow.hidden = true
lable_useShow.font = UIFont.systemFontOfSize(13)
lable_useShow.textColor = UIColor.grayColor()
return lable_useShow
}()
//可提现
lazy var lable_draw: UILabel = {
let lable_useShow = UILabel.newAutoLayoutView()
return lable_useShow
}()
//查看全部
lazy var lable_moreConet: UIButton = {
let lable_moreConet = UIButton.newAutoLayoutView()
lable_moreConet.setTitle("查看更多", forState: .Normal)
lable_moreConet.setTitle("收起", forState: .Selected)
lable_moreConet.titleLabel?.font = UIFont.systemFontOfSize(13)
lable_moreConet.setTitleColor(KEY_COLOR_NAV, forState: .Normal)
lable_moreConet.selected = false
return lable_moreConet
}()
//查看全部
lazy var image_more: UIImageView = {
let lable_useShow = UIImageView.newAutoLayoutView()
return lable_useShow
}()
//标签图片
lazy var image_tag: UIImageView = {
let lable_useShow = UIImageView.newAutoLayoutView()
return lable_useShow
}()
override func awakeFromNib() {
super.awakeFromNib()
}
func addsubViewUI()
{
// lable_usecontent.titlesBlack!(arr:["有效期:\(redDataDic.quanValidityStart)","\(redDataDic.quanCatalogRemark)"])
addSubview(view_top)
view_top.addSubview(lable_code)
view_top.addSubview(lable_money)
view_top.addSubview(lable_redStyel)
view_top.addSubview(lable_Zhejin)
view_top.addSubview(lable_mark)
addSubview(view_bottom)
view_bottom.addSubview(image_line)
view_bottom.addSubview(lable_useShow)
view_bottom.addSubview(lable_date)
view_bottom.addSubview(lable_Mcontent)
view_bottom.addSubview(lable_draw)
view_bottom.addSubview(lable_moreConet)
view_bottom.addSubview(image_more)
view_bottom.addSubview(image_tag)
}
//
override func layoutSubviews() {
super.layoutSubviews()
switch celltype {
case 1:
setUpCanUsedRed()
break
case 2:
setUpUnUsedRed()
break
case 3:
setUpHadUsedRed()
break
default:
break
}
//
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
kCellFrameW = self.frame.width
addsubViewUI()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
// MARK:- 页面布局 -
extension RedBagCell
{
// MARK:- 可用
private func setUpCanUsedRed()
{
weak var myself = self
image_tag.hidden = true
view_top.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Bottom)
view_top.autoSetDimension(.Height, toSize: 80)
view_top.backgroundColor = KEY_COLOR_NAV
view_top.layer.cornerRadius = 6
view_top.layer.masksToBounds = true
view_bottom.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Top)
view_bottom.autoPinEdge(.Top, toEdge: .Bottom, ofView: view_top, withOffset: -1)
view_bottom.backgroundColor = UIColor.whiteColor()
view_bottom.layer.cornerRadius = 6
view_bottom.layer.masksToBounds = true
lable_code.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_code.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_code.autoSetDimension(.Width, toSize: self.frame.width/2)
lable_code.autoSetDimension(.Height, toSize: 20)
// lable_code.text = redDataDic.quanDetailsId
lable_code.textAlignment = .Left
lable_code.textColor = UIColor.whiteColor()
lable_code.font = UIFont.systemFontOfSize(12)
lable_mark.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -5)
lable_mark.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_mark.autoSetDimension(.Width, toSize: 20)
lable_mark.autoSetDimension(.Height, toSize: 60)
lable_mark.font = UIFont.boldSystemFontOfSize(25)
lable_mark.textColor = UIColor.whiteColor()
lable_mark.text = "¥"
lable_mark.textAlignment = .Center
//
lable_money.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -10)
lable_money.autoPinEdge(.Left, toEdge: .Right, ofView: lable_mark, withOffset: 0)
lable_money.autoSetDimension(.Width, toSize: 80)
lable_money.autoSetDimension(.Height, toSize: 60)
lable_money.font = UIFont.boldSystemFontOfSize(38)
lable_money.textColor = UIColor.whiteColor()
// lable_money.text = "150"
lable_money.textAlignment = .Left
//
lable_Zhejin.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_Zhejin.autoPinEdge(.Right, toEdge: .Right, ofView: view_top, withOffset: -10)
lable_Zhejin.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_top, withOffset: -5)
lable_Zhejin.autoSetDimension(.Width, toSize: 120)
lable_Zhejin.font = UIFont.boldSystemFontOfSize(30)
lable_Zhejin.textColor = KEY_COLOR_ZHEFont
lable_Zhejin.text = "浙金红包"
lable_Zhejin.textAlignment = .Right
//
lable_redStyel.autoPinEdge(.Top, toEdge: .Top, ofView: lable_money, withOffset: 10)
lable_redStyel.autoPinEdge(.Left, toEdge: .Right, ofView: lable_money, withOffset: 0)
lable_redStyel.autoPinEdge(.Right, toEdge: .Left, ofView: lable_Zhejin, withOffset: 0)
lable_redStyel.autoSetDimension(.Height, toSize: 40)
lable_redStyel.font = UIFont.systemFontOfSize(14)
lable_redStyel.textColor = UIColor.whiteColor()
lable_redStyel.numberOfLines = 2
// lable_redStyel.text = "抽奖大礼包"
// lable_redStyel.text = redDataDic.quanName
lable_redStyel.textAlignment = .Left
//
image_line.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 0)
image_line.autoPinEdge(.Bottom, toEdge: .Top, ofView: view_bottom, withOffset: 3)
image_line.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: 0)
image_line.autoSetDimension(.Height, toSize: 10)
image_line.image = UIImage(named: "红波浪线")
//使用说明
lable_useShow.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_useShow.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 10)
lable_useShow.autoSetDimension(.Width, toSize: 60)
lable_useShow.autoSetDimension(.Height, toSize: 20)
lable_useShow.text = "使用说明"
lable_useShow.font = UIFont.systemFontOfSize(13)
lable_useShow.textColor = UIColor.grayColor()
//时间
lable_date.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_useShow, withOffset: 0)
lable_date.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_date.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_date.autoSetDimension(.Height, toSize: 20)
lable_date.font = UIFont.systemFontOfSize(13)
lable_date.textColor = UIColor.grayColor()
//lable_usecontent
//内容
lable_Mcontent.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_Mcontent.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_date, withOffset: 0)
lable_Mcontent.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_Mcontent.autoSetDimension(.Height, toSize: 20)
lable_draw.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -15)
lable_draw.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 20)
lable_draw.autoSetDimension(.Width, toSize: 80)
lable_draw.autoSetDimension(.Height, toSize: 25)
lable_draw.backgroundColor = UIColor.orangeColor()
lable_draw.textColor = UIColor.blackColor()
lable_draw.font = UIFont.systemFontOfSize(14)
lable_draw.textAlignment = .Center
// lable_draw.text = "可提现 >"
lable_draw.layer.cornerRadius = 5
lable_draw.layer.masksToBounds = true
//lable_moreConet
let moreConetX:CGFloat = (frame.width-98)/2
lable_moreConet.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: moreConetX)
lable_moreConet.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -5)
lable_moreConet.autoSetDimension(.Width, toSize: 70)
lable_moreConet.autoSetDimension(.Height, toSize: 20)
//
image_more.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -moreConetX)
image_more.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -9)
image_more.autoSetDimension(.Width, toSize: 10)
image_more.autoSetDimension(.Height, toSize: 12)
image_more.image = UIImage(named: "红包更多")
image_more.userInteractionEnabled = true
}
// MARK:- 失效红包
private func setUpUnUsedRed()
{
lable_draw.hidden = true
view_top.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Bottom)
view_top.autoSetDimension(.Height, toSize: 80)
view_top.backgroundColor = UIColor(red: 129/255.0, green: 129/255.0, blue: 129/255.0, alpha: 1)
view_top.layer.cornerRadius = 6
view_top.layer.masksToBounds = true
view_bottom.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Top)
view_bottom.autoPinEdge(.Top, toEdge: .Bottom, ofView: view_top, withOffset: -1)
view_bottom.backgroundColor = UIColor.whiteColor()
view_bottom.layer.cornerRadius = 6
view_bottom.layer.masksToBounds = true
lable_code.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_code.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_code.autoSetDimension(.Width, toSize: self.frame.width/2)
lable_code.autoSetDimension(.Height, toSize: 20)
// lable_code.text = "NO:11011101101011"
lable_code.textAlignment = .Left
lable_code.textColor = UIColor.whiteColor()
lable_code.font = UIFont.systemFontOfSize(12)
lable_mark.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -5)
lable_mark.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_mark.autoSetDimension(.Width, toSize: 20)
lable_mark.autoSetDimension(.Height, toSize: 60)
lable_mark.font = UIFont.boldSystemFontOfSize(25)
lable_mark.textColor = UIColor.whiteColor()
lable_mark.text = "¥"
lable_mark.textAlignment = .Center
//
lable_money.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -10)
lable_money.autoPinEdge(.Left, toEdge: .Right, ofView: lable_mark, withOffset: 0)
lable_money.autoSetDimension(.Width, toSize: 80)
lable_money.autoSetDimension(.Height, toSize: 60)
lable_money.font = UIFont.boldSystemFontOfSize(38)
lable_money.textColor = UIColor.whiteColor()
// lable_money.text = "150"
lable_money.textAlignment = .Left
//
lable_Zhejin.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_Zhejin.autoPinEdge(.Right, toEdge: .Right, ofView: view_top, withOffset: -10)
lable_Zhejin.autoSetDimension(.Width, toSize: 120)
lable_Zhejin.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_top, withOffset: -5)
lable_Zhejin.font = UIFont.boldSystemFontOfSize(30)
lable_Zhejin.textColor = UIColor.whiteColor()
lable_Zhejin.text = "浙金红包"
lable_Zhejin.textAlignment = .Right
//
lable_redStyel.autoPinEdge(.Top, toEdge: .Top, ofView: lable_money, withOffset: 10)
lable_redStyel.autoPinEdge(.Left, toEdge: .Right, ofView: lable_money, withOffset: 0)
lable_redStyel.autoPinEdge(.Right, toEdge: .Left, ofView: lable_Zhejin, withOffset: 0)
lable_redStyel.autoSetDimension(.Height, toSize: 40)
lable_redStyel.font = UIFont.systemFontOfSize(14)
lable_redStyel.textColor = UIColor.whiteColor()
lable_redStyel.numberOfLines = 2
// lable_redStyel.text = "抽奖大礼包"
lable_redStyel.textAlignment = .Left
//
//
image_line.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 0)
image_line.autoPinEdge(.Bottom, toEdge: .Top, ofView: view_bottom, withOffset: 3)
image_line.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: 0)
image_line.autoSetDimension(.Height, toSize: 10)
image_line.image = UIImage(named: "灰波浪线")
//
lable_useShow.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_useShow.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 10)
lable_useShow.autoSetDimension(.Width, toSize: 60)
lable_useShow.autoSetDimension(.Height, toSize: 20)
lable_useShow.text = "使用条件"
lable_useShow.font = UIFont.systemFontOfSize(13)
lable_useShow.textColor = UIColor.grayColor()
//时间
lable_date.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_useShow, withOffset: 0)
lable_date.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_date.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_date.autoSetDimension(.Height, toSize: 20)
lable_date.font = UIFont.systemFontOfSize(13)
lable_date.textColor = UIColor.grayColor()
//lable_usecontent
//内容
lable_Mcontent.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_Mcontent.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_date, withOffset: 0)
lable_Mcontent.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_Mcontent.autoSetDimension(.Height, toSize: 20)
image_tag.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -20)
image_tag.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 10)
image_tag.autoSetDimension(.Width, toSize: 52)
image_tag.autoSetDimension(.Height, toSize: 52)
image_tag.image = UIImage(named: "已失效")
//lable_moreConet
let moreConetX:CGFloat = (frame.width-98)/2
lable_moreConet.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: moreConetX)
lable_moreConet.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -5)
lable_moreConet.autoSetDimension(.Width, toSize: 70)
lable_moreConet.autoSetDimension(.Height, toSize: 20)
lable_moreConet.userInteractionEnabled = true
lable_moreConet.setTitleColor(UIColor.grayColor(), forState: .Normal)
//
image_more.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -moreConetX)
image_more.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -9)
image_more.autoSetDimension(.Width, toSize: 10)
image_more.autoSetDimension(.Height, toSize: 12)
image_more.image = UIImage(named: "灰色更多")
image_more.userInteractionEnabled = true
}
// MARK:- 已使用
private func setUpHadUsedRed()
{
lable_draw.hidden = true
view_top.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Bottom)
view_top.autoSetDimension(.Height, toSize: 80)
view_top.backgroundColor = KEY_COLOR_NAV
view_top.layer.cornerRadius = 6
view_top.layer.masksToBounds = true
view_bottom.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10), excludingEdge: .Top)
view_bottom.autoPinEdge(.Top, toEdge: .Bottom, ofView: view_top, withOffset: -1)
// view_bottom.autoSetDimension(.Height, toSize: 110)
view_bottom.backgroundColor = UIColor.whiteColor()
view_bottom.layer.cornerRadius = 6
view_bottom.layer.masksToBounds = true
lable_code.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_code.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_code.autoSetDimension(.Width, toSize: self.frame.width/2)
lable_code.autoSetDimension(.Height, toSize: 20)
// lable_code.text = "NO:11011101101011"
lable_code.textAlignment = .Left
lable_code.textColor = UIColor.whiteColor()
lable_code.font = UIFont.systemFontOfSize(12)
lable_mark.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -5)
lable_mark.autoPinEdge(.Left, toEdge: .Left, ofView: view_top, withOffset: 10)
lable_mark.autoSetDimension(.Width, toSize: 20)
lable_mark.autoSetDimension(.Height, toSize: 60)
lable_mark.font = UIFont.boldSystemFontOfSize(25)
lable_mark.textColor = UIColor.whiteColor()
lable_mark.text = "¥"
lable_mark.textAlignment = .Center
//
lable_money.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_code, withOffset: -10)
lable_money.autoPinEdge(.Left, toEdge: .Right, ofView: lable_mark, withOffset: 0)
lable_money.autoSetDimension(.Width, toSize: 90)
lable_money.autoSetDimension(.Height, toSize: 60)
lable_money.font = UIFont.boldSystemFontOfSize(36)
lable_money.textColor = UIColor.whiteColor()
// lable_money.text = "150"
lable_money.textAlignment = .Left
//
lable_Zhejin.autoPinEdge(.Top, toEdge: .Top, ofView: view_top, withOffset: 5)
lable_Zhejin.autoPinEdge(.Right, toEdge: .Right, ofView: view_top, withOffset: -10)
lable_Zhejin.autoSetDimension(.Width, toSize: 120)
lable_Zhejin.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_top, withOffset: -5)
lable_Zhejin.font = UIFont.boldSystemFontOfSize(30)
lable_Zhejin.textColor = KEY_COLOR_ZHEFont
lable_Zhejin.text = "浙金红包"
lable_Zhejin.textAlignment = .Right
//
lable_redStyel.autoPinEdge(.Top, toEdge: .Top, ofView: lable_money, withOffset: 10)
lable_redStyel.autoPinEdge(.Left, toEdge: .Right, ofView: lable_money, withOffset: 0)
lable_redStyel.autoPinEdge(.Right, toEdge: .Left, ofView: lable_Zhejin, withOffset: 0)
lable_redStyel.autoSetDimension(.Height, toSize: 40)
lable_redStyel.font = UIFont.systemFontOfSize(14)
lable_redStyel.textColor = UIColor.whiteColor()
lable_redStyel.numberOfLines = 2
// lable_redStyel.text = "抽奖大礼包"
lable_redStyel.textAlignment = .Left
//
// lable_date.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_Zhejin, withOffset: -5)
// lable_date.autoPinEdge(.Right, toEdge: .Right, ofView: view_top, withOffset: -10)
// lable_date.autoSetDimension(.Width, toSize: 120)
// lable_date.autoSetDimension(.Height, toSize: 20)
// lable_date.font = UIFont.systemFontOfSize(13)
// lable_date.text = "2016-19-33 到期 "
// lable_date.textColor = UIColor.whiteColor()
// lable_date.textAlignment = .Center
//
image_line.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 0)
image_line.autoPinEdge(.Bottom, toEdge: .Top, ofView: view_bottom, withOffset: 3)
image_line.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: 0)
image_line.autoSetDimension(.Height, toSize: 10)
image_line.image = UIImage(named: "红波浪线")
//
lable_useShow.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_useShow.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 10)
lable_useShow.autoSetDimension(.Width, toSize: 60)
lable_useShow.autoSetDimension(.Height, toSize: 20)
lable_useShow.text = "使用条件"
lable_useShow.font = UIFont.systemFontOfSize(13)
lable_useShow.textColor = UIColor.grayColor()
//时间
lable_date.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_useShow, withOffset: 0)
lable_date.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_date.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_date.autoSetDimension(.Height, toSize: 20)
lable_date.font = UIFont.systemFontOfSize(13)
lable_date.textColor = UIColor.grayColor()
//lable_usecontent
//内容
lable_Mcontent.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: 15)
lable_Mcontent.autoPinEdge(.Top, toEdge: .Bottom, ofView: lable_date, withOffset: 0)
lable_Mcontent.autoPinEdge(.Right, toEdge: .Left, ofView: lable_draw, withOffset: 0)
lable_Mcontent.autoSetDimension(.Height, toSize: 20)
//已使用
image_tag.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -15)
image_tag.autoPinEdge(.Top, toEdge: .Top, ofView: view_bottom, withOffset: 20)
image_tag.autoSetDimension(.Width, toSize: 82)
image_tag.autoSetDimension(.Height, toSize: 24)
image_tag.image = UIImage(named: "已使用")
//lable_moreConet
let moreConetX:CGFloat = (frame.width-98)/2
lable_moreConet.autoPinEdge(.Left, toEdge: .Left, ofView: view_bottom, withOffset: moreConetX)
lable_moreConet.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -5)
lable_moreConet.autoSetDimension(.Width, toSize: 70)
lable_moreConet.autoSetDimension(.Height, toSize: 20)
lable_moreConet.userInteractionEnabled = true
//
image_more.autoPinEdge(.Right, toEdge: .Right, ofView: view_bottom, withOffset: -moreConetX)
image_more.autoPinEdge(.Bottom, toEdge: .Bottom, ofView: view_bottom, withOffset: -9)
image_more.autoSetDimension(.Width, toSize: 10)
image_more.autoSetDimension(.Height, toSize: 12)
image_more.image = UIImage(named: "红包更多")
image_more.userInteractionEnabled = true
}
}
VC里面的页面:
//
// RedEnvelopeVC.swift
// zjfae
//
// Created by 崔家维 on 16/3/23.
// Copyright © 2016年 崔家维. All rights reserved.
//
import UIKit
import KVNProgress
import MJRefresh
private let kTopViewH : CGFloat = 50
private let kContenViewH : CGFloat = SCREEN_HEIGHT-kTopViewH-65
private let enableID:String = "enableID"
private let failsID:String = "failsID"
private let usedID:String = "usedID"
typealias ClickMoreB = (stu:Bool,indexPath: NSIndexPath) -> ()
class RedEnvelopeVC: UIViewController{
private var topView:TopViewThreeBtn?
let header = MJRefreshNormalHeader()
let footer = MJRefreshAutoNormalFooter()
let falseheader = MJRefreshNormalHeader()
let falsefooter = MJRefreshAutoNormalFooter()
let useheader = MJRefreshNormalHeader()
let usefooter = MJRefreshAutoNormalFooter()
// 记录当前的页数
var contentPage : NSInteger = 0
// 记录当前的页数
var falsecontentPage : NSInteger = 0
// 记录当前的页数
var usecontentPage : NSInteger = 0
// 总共的页数
var pageNum:NSInteger = 0
// 总共的页数
var falsepageNum:NSInteger = 0
// 总共的页数
var usepageNum:NSInteger = 0
//可用的
var enabledataArr : NSMutableArray?
//无效的
var failsdataArr : NSMutableArray?
//已领取
var useddataArr : NSMutableArray?
//可用的个数
var avaiLableCount:String = "0"
//失效的个数
var hasFailedCount:String = "0"
//已领取的个数
var alreadUsedCount:String = "0"
var stuatue : Bool = true
var index : Int?
var cellH : CGFloat?
//点击某个cell变大
var clickMoreb : ClickMoreB?
//可用
var selectedIndexes:NSMutableDictionary?
//失效
var falseselectedIndexes:NSMutableDictionary?
//已用
var useselectedIndexes:NSMutableDictionary?
override func viewDidLoad() {
super.viewDidLoad()
selectedIndexes = NSMutableDictionary()
falseselectedIndexes = NSMutableDictionary()
useselectedIndexes = NSMutableDictionary()
enableHeaderRefresh()
createUI()
btnclictON()
}
// MARK: - 懒加载contenScrollView
private lazy var contenView:UIScrollView = {
let aView = UIScrollView()
aView.frame = CGRectMake(0, kTopViewH, SCREEN_WIDTH, kContenViewH)
aView.contentSize = CGSizeMake(3*SCREEN_WIDTH, 0)
aView.contentOffset.x = 0
aView.pagingEnabled = true
aView.delegate = self
aView.showsHorizontalScrollIndicator = false
return aView
}()
//可用
private lazy var enableTableView:UITableView =
{
let tableView=UITableView(frame:CGRectMake(0, 0, SCREEN_WIDTH, kContenViewH), style: UITableViewStyle.Grouped)
tableView.backgroundColor = KEY_COLOR_BACKGROUND
tableView.delegate=self
tableView.dataSource=self
tableView.showsVerticalScrollIndicator = false
tableView.registerClass(RedBagCell.self, forCellReuseIdentifier: enableID)
return tableView
}()
//无效红包
private lazy var failsTableView:UITableView =
{
let tableView = UITableView(frame:CGRectMake(SCREEN_WIDTH, 0, SCREEN_WIDTH, kContenViewH), style: UITableViewStyle.Grouped)
tableView.backgroundColor = KEY_COLOR_BACKGROUND
tableView.delegate=self
tableView.dataSource=self
tableView.showsVerticalScrollIndicator = false
tableView.registerClass(RedBagCell.self,forCellReuseIdentifier:failsID)
return tableView
}()
//已使用用
private lazy var usedTableView:UITableView =
{
let tableView = UITableView(frame:CGRectMake(2*SCREEN_WIDTH, 0, SCREEN_WIDTH, kContenViewH), style: UITableViewStyle.Grouped)
tableView.backgroundColor = KEY_COLOR_BACKGROUND
tableView.delegate=self
tableView.dataSource=self
tableView.showsVerticalScrollIndicator = false
tableView.registerClass(RedBagCell.self,forCellReuseIdentifier:usedID)
return tableView
}()
}
// MARK: - 请求数据
extension RedEnvelopeVC
{
func getData(sring:String)
{
let msg = REQ_PBIFE_kq_getMyDiscountPage()
msg.kqType = "R"
if sring == "enable"
{
msg.status = "10"
msg.pageIndex = "\(contentPage)"
}
else if sring == "false"
{
msg.status = "30"
msg.pageIndex = "\(falsecontentPage)"
}
else if sring == "used"
{
msg.status = "20"
msg.pageIndex = "\(usecontentPage)"
}
msg.pageSize = "10"
DSLoader.postPBData(PbName_kq_getMyDiscountPage, msg: msg, onSuccess: { (fh) in
var error : NSError?
let peret = Ret_PBIFE_kq_getMyDiscountPage(data: fh.body!,error: &error)
if error != nil
{
print("error --->\(error)")
KVNProgress.showErrorWithStatus("\(error)")
}
else{
print("我的红包--->\(peret)")
//可用的个数
self.avaiLableCount = peret.data_p.availableCount
//失效的个数
self.hasFailedCount = peret.data_p.hasFailedCount
//已领取的个数
self.alreadUsedCount = peret.data_p.alreadyUsedCount
// 可用
if sring == "enable"
{
if self.contentPage == 1
{
self.topView!.initFrame("可用(\(self.avaiLableCount))", twoStr: "失效(\(self.hasFailedCount))", ThreeStr: "已领取(\(self.alreadUsedCount))")
self.enabledataArr?.removeAllObjects()
}
self.enabledataArr?.addObjectsFromArray(peret.data_p.kaQuanListArray as [AnyObject])
//数据总页面
if let num = (NSInteger)(peret.data_p.pageInfo.pageCount)
{
self.pageNum = num
}
// 可用
self.enableTableView.mj_header.endRefreshing()
self.enableTableView.mj_footer.endRefreshing()
self.enableTableView.reloadData()
}
//失效
else if sring == "false"
{
if self.falsecontentPage == 1
{
self.failsdataArr?.removeAllObjects()
}
self.failsdataArr?.addObjectsFromArray(peret.data_p.kaQuanListArray as [AnyObject])
//数据总页面
if let num = (NSInteger)(peret.data_p.pageInfo.pageCount)
{
self.falsepageNum = num
}
//失效
self.failsTableView.mj_header.endRefreshing()
self.failsTableView.mj_footer.endRefreshing()
self.failsTableView.reloadData()
}
//已领取
else if sring == "used"
{
if self.usecontentPage == 1
{
self.useddataArr?.removeAllObjects()
}
self.useddataArr?.addObjectsFromArray(peret.data_p.kaQuanListArray as [AnyObject])
//数据总页面
if let num = (NSInteger)(peret.data_p.pageInfo.pageCount)
{
self.usepageNum = num
}
//已使用
self.usedTableView.mj_header.endRefreshing()
self.usedTableView.mj_footer.endRefreshing()
self.usedTableView.reloadData()
}
}
}) { (error) in
print("请求出出错了--->\(error)")
KVNProgress.showErrorWithStatus("\(error)")
}
}
}
// MARK: - 视图方面
extension RedEnvelopeVC
{
internal func createUI()
{
view.backgroundColor = KEY_COLOR_BACKGROUND
//不需要调整UIScrollView的内边距
automaticallyAdjustsScrollViewInsets = false
//设置标题
self.title = "红包"
//初始化数组
//可用的
enabledataArr = NSMutableArray()
//无效的
failsdataArr = NSMutableArray()
//已领取
useddataArr = NSMutableArray()
//创建头部按钮视图
creatTopView()
//创建下面的内容的scorlleView
creatContenView()
//页面添加刷新
creatUIRefesh()
}
// MARK: - 创建头部按钮视图
func creatTopView()
{
topView = TopViewThreeBtn(frame:CGRectMake(0,0,SCREEN_WIDTH,kTopViewH))
topView!.initFrame("可用(0)", twoStr: "失效(0)", ThreeStr: "已领取(0)",statue:"first")
view.addSubview(topView!)
}
// MARK: - 创建内容。里面放3个tabelView
func creatContenView()
{
view.addSubview(contenView)
contenView.addSubview(enableTableView)
contenView.addSubview(failsTableView)
contenView.addSubview(usedTableView)
}
func creatUIRefesh()
{
// 下拉刷新
header.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.enableHeaderRefresh))
enableTableView.mj_header = header
// 上拉加载
footer.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.enableFooterRefresh))
enableTableView.mj_footer = footer
// 下拉刷新
falseheader.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.failsHeaderRefresh))
failsTableView.mj_header = falseheader
// 上拉加载
falsefooter.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.failsFooterRefresh))
failsTableView.mj_footer = falsefooter
// 下拉刷新
useheader.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.usedHeaderRefresh))
usedTableView.mj_header = useheader
// 上拉加载
usefooter.setRefreshingTarget(self, refreshingAction: #selector(RedEnvelopeVC.usedFooterRefresh))
usedTableView.mj_footer = usefooter
}
}
//MARK: - 实现刷新方法
extension RedEnvelopeVC
{
func enableHeaderRefresh()
{
contentPage = 1
getData("enable")
}
func enableFooterRefresh()
{
//
if contentPage < self.pageNum {
contentPage = contentPage+1
getData("enable")
}else {
footer.endRefreshingWithNoMoreData()
}
}
func failsHeaderRefresh()
{
falsecontentPage = 1
getData("false")
}
func failsFooterRefresh()
{
if falsecontentPage < self.falsepageNum {
falsecontentPage = falsecontentPage+1
getData("false")
}else {
footer.endRefreshingWithNoMoreData()
}
}
func usedHeaderRefresh()
{
usecontentPage = 1
getData("used")
}
func usedFooterRefresh()
{
if usecontentPage < self.usepageNum {
usecontentPage = usecontentPage+1
getData("used")
}else {
footer.endRefreshingWithNoMoreData()
}
}
}
// MARK: - 点击上面的按钮
extension RedEnvelopeVC
{
func btnclictON()
{
topView!.oneBtnBlack = {
self.contenView.contentOffset = CGPointMake(0, 0)
self.enableHeaderRefresh()
self.enableTableView.reloadData()
}
topView!.twoBtnBlack = {
self.contenView.contentOffset = CGPointMake(SCREEN_WIDTH, 0)
self.failsHeaderRefresh()
self.failsTableView.reloadData()
}
topView!.ThreeBtnBlack = {
self.contenView.contentOffset = CGPointMake(2*SCREEN_WIDTH, 0)
self.usedHeaderRefresh()
self.usedTableView.reloadData()
}
}
}
// MARK: - tableView的代理方法 -
extension RedEnvelopeVC : UITableViewDataSource,UITableViewDelegate
{
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if tableView == enableTableView
{
if cellIsSelecte(indexPath)
{
return 180
}
return 150
}
else if tableView == failsTableView
{
if falsecellIsSelecte(indexPath)
{
return 180
}
return 150
}
else if tableView == usedTableView
{
if usecellIsSelecte(indexPath)
{
return 180
}
return 150
}
return 150
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
if tableView == enableTableView
{
return self.enabledataArr!.count
}
else if tableView == failsTableView
{
return self.failsdataArr!.count
}
else if tableView == usedTableView
{
return self.useddataArr!.count
}
else
{
return 0
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if tableView == enableTableView
{
let cell:RedBagCell = (tableView.dequeueReusableCellWithIdentifier(enableID) as? RedBagCell)!
cell.celltype = 1
cell.selectionStyle = .None
cell.backgroundColor = KEY_COLOR_BACKGROUND
enableDrawUIOnTheCell(cell,indexPath: indexPath)
return cell
}
else if tableView == failsTableView
{
let cell:RedBagCell = (tableView.dequeueReusableCellWithIdentifier(failsID) as? RedBagCell)!
cell.celltype = 2
cell.backgroundColor = KEY_COLOR_BACKGROUND
cell.selectionStyle = .None
falseDrawUIOnTheCell(cell,indexPath: indexPath)
return cell
}
else if tableView == usedTableView
{
let cell:RedBagCell = (tableView.dequeueReusableCellWithIdentifier(usedID) as? RedBagCell)!
cell.celltype = 3
cell.backgroundColor = KEY_COLOR_BACKGROUND
cell.selectionStyle = .None
useDrawUIOnTheCell(cell,indexPath: indexPath)
return cell
}
else
{
return UITableViewCell()
}
}
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 10
}
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 10
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
// 可用
func enableDrawUIOnTheCell(cell:RedBagCell,indexPath: NSIndexPath)
{
if indexPath.row < self.enabledataArr?.count, let ds = self.enabledataArr?[indexPath.section] {
cell.redDataDic = ds as! PBIFE_kq_getMyDiscountPage_KaQuanList
weak var myself = self
cell.lable_money.text = ds.quanValue
cell.lable_redStyel.text = ds.quanName
cell.lable_code.text = ds.quanDetailsId
cell.lable_date.text = "◇有效期:\(ds.quanValidityStart)"
cell.lable_Mcontent.text = "◇\(ds.quanCatalogRemark)"
if ds.quanCanCash == "0"
{
cell.lable_draw.text = "不可提现 >"
cell.lable_draw.userInteractionEnabled = false
}else if ds.quanCanCash == "1"
{
cell.lable_draw.userInteractionEnabled = true
cell.lable_draw.text = "可提现 >"
cell.lable_draw.bk_whenTapped({
Utils.showAlert(self, title: "请确认是否提现", message: "红包提现后金额当日不可以提现到银行卡,但可用于购买产品使用", cancleTitle: "取消", sureTitle: "确认", sureFinished: {
myself!.useClickDarw(ds as! PBIFE_kq_getMyDiscountPage_KaQuanList)
})
})
}
cell.lable_moreConet.tag = indexPath.section
cell.lable_moreConet.addTarget(self, action:#selector(clickMoreBtn(_:)), forControlEvents: .TouchUpInside)
if cellIsSelecte(indexPath)
{
cell.lable_Mcontent.hidden = false
cell.lable_moreConet.selected = true
}
else
{
cell.lable_Mcontent.hidden = true
cell.lable_moreConet.selected = false
}
}
}
//失效
func falseDrawUIOnTheCell(cell:RedBagCell,indexPath: NSIndexPath)
{
if indexPath.row < self.failsdataArr?.count, let ds = self.failsdataArr?[indexPath.section] {
cell.redDataDic = ds as! PBIFE_kq_getMyDiscountPage_KaQuanList
cell.lable_date.text = "◇有效期:\(ds.quanValidityStart)"
cell.lable_Mcontent.text = "◇\(ds.quanCatalogRemark)"
cell.lable_money.text = ds.quanValue
cell.lable_redStyel.text = ds.quanName
cell.lable_code.text = ds.quanDetailsId
cell.lable_moreConet.tag = indexPath.section
cell.lable_moreConet.addTarget(self, action:#selector(falseclickMoreBtn(_:)), forControlEvents: .TouchUpInside)
if falsecellIsSelecte(indexPath)
{
cell.lable_Mcontent.hidden = false
cell.lable_moreConet.selected = true
}
else
{
cell.lable_Mcontent.hidden = true
cell.lable_moreConet.selected = false
}
}
}
// 已领取
func useDrawUIOnTheCell(cell:RedBagCell,indexPath: NSIndexPath)
{
if indexPath.row < self.useddataArr?.count, let ds = self.useddataArr?[indexPath.section] {
cell.redDataDic = ds as! PBIFE_kq_getMyDiscountPage_KaQuanList
cell.lable_date.text = "◇有效期:\(ds.quanValidityStart)"
cell.lable_Mcontent.text = "◇\(ds.quanCatalogRemark)"
cell.lable_money.text = ds.quanValue
cell.lable_redStyel.text = ds.quanName
cell.lable_code.text = ds.quanDetailsId
cell.lable_moreConet.tag = indexPath.section
cell.lable_moreConet.addTarget(self, action:#selector(useclickMoreBtn(_:)), forControlEvents: .TouchUpInside)
if usecellIsSelecte(indexPath)
{
cell.lable_Mcontent.hidden = false
cell.lable_moreConet.selected = true
}
else
{
cell.lable_Mcontent.hidden = true
cell.lable_moreConet.selected = false
}
}
}
}
//MARK: - 点击更多 -
extension RedEnvelopeVC
{
func clickMoreBtn(btn:UIButton)
{
print("btnTag-->\(btn.tag)")
let indexPath:NSIndexPath = NSIndexPath(forRow: 0, inSection: btn.tag)
let isSelected:Bool = !cellIsSelecte(indexPath)
let selectedIndex = NSNumber.init(booleanLiteral: isSelected)
selectedIndexes!.setObject(selectedIndex, forKey: indexPath)
self.enableTableView.reloadSections(NSIndexSet(index:btn.tag), withRowAnimation: .None)
}
func falseclickMoreBtn(btn:UIButton)
{
print("btnTag-->\(btn.tag)")
let indexPath:NSIndexPath = NSIndexPath(forRow: 0, inSection: btn.tag)
let isSelected:Bool = !falsecellIsSelecte(indexPath)
let selectedIndex = NSNumber.init(booleanLiteral: isSelected)
falseselectedIndexes!.setObject(selectedIndex, forKey: indexPath)
self.failsTableView.reloadSections(NSIndexSet(index:btn.tag), withRowAnimation: .None)
}
func useclickMoreBtn(btn:UIButton)
{
print("btnTag-->\(btn.tag)")
let indexPath:NSIndexPath = NSIndexPath(forRow: 0, inSection: btn.tag)
let isSelected:Bool = !usecellIsSelecte(indexPath)
let selectedIndex = NSNumber.init(booleanLiteral: isSelected)
useselectedIndexes!.setObject(selectedIndex, forKey: indexPath)
self.usedTableView.reloadSections(NSIndexSet(index:btn.tag), withRowAnimation: .None)
}
// MARK: - 标记点击的cell
func cellIsSelecte(indexPath:NSIndexPath) -> Bool
{
guard let selectedIndex:NSNumber = selectedIndexes?.objectForKey(indexPath) as? NSNumber else {return false}
if selectedIndex.boolValue
{
return true
}else
{
return false
}
}
// MARK: - 标记点击的cell
func falsecellIsSelecte(indexPath:NSIndexPath) -> Bool
{
guard let selectedIndex:NSNumber = falseselectedIndexes?.objectForKey(indexPath) as? NSNumber else {return false}
if selectedIndex.boolValue
{
return true
}else
{
return false
}
}
// MARK: - 标记点击的cell
func usecellIsSelecte(indexPath:NSIndexPath) -> Bool
{
guard let selectedIndex:NSNumber = useselectedIndexes?.objectForKey(indexPath) as? NSNumber else {return false}
if selectedIndex.boolValue
{
return true
}else
{
return false
}
}
}
// MARK: - scrollViewDele -
extension RedEnvelopeVC : UIScrollViewDelegate
{
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
if scrollView == contenView
{
let pageX = (scrollView.contentOffset.x)/SCREEN_WIDTH
if pageX == 0.0
{
contenView.contentOffset = CGPointMake(0, 0)
topView?.setBlack!(setX: 0,tag:100)
self.enableHeaderRefresh()
}else if pageX == 1.0
{
contenView.contentOffset = CGPointMake(SCREEN_WIDTH, 0)
topView?.setBlack!(setX: SCREEN_WIDTH/3-2,tag:101)
self.failsHeaderRefresh()
}else if pageX == 2.0
{
contenView.contentOffset = CGPointMake(2*SCREEN_WIDTH, 0)
topView?.setBlack!(setX: (SCREEN_WIDTH/3-2)*2,tag:102)
self.usedHeaderRefresh()
}
}
}
}
// MARK: - 提现接口调用
extension RedEnvelopeVC
{
func useClickDarw(dic:PBIFE_kq_getMyDiscountPage_KaQuanList)
{
print("点击了提现按钮")
let msg = REQ_PBIFE_kq_kqWithdrawals()
msg.quanType = "R"
msg.quanValue = dic.quanValue
msg.quanDetailsId = dic.quanDetailsId
DSLoader.postPBData(PbName_kq_kqWithdrawals, msg: msg, onSuccess: { (fh) in
var error : NSError?
let pertet = Ret_PBIFE_kq_kqWithdrawals(data: fh.body!,error: &error)
if error != nil
{
print("error --->\(error)")
KVNProgress.showErrorWithStatus("\(error)")
}
else{
print("我的消息pertet--->\(pertet)")
if pertet.returnCode == "0000"
{
Utils.showAlert(self, title: "提现成功", message: "提现金额¥(\(dic.quanValue)元已进入你的账号)", btnTitle: "知道了")
}
else
{
Utils.showAlert(self, title: "", message: "\(pertet.returnMsg)", btnTitle: "知道了")
}
}
}) { (error) in
print("请求出出错了--->\(error)")
KVNProgress.showErrorWithStatus("\(error)")
}
}
}