大体效果如下:
代码分析
DEMO 下载地址。 这是一个类似 原生 UITableView 的自动以控件,使用swift 编写。 多出了调节 每行高度。因为系统的TableView 是默认不允许折叠的。 然后自定义
和 每行头部高度的方法 。 使用了 典型的 代理模式。 通过 实现代理的AATBanksCardViewDataSource 和 AATBanksCardViewDelegate 来实现布局。 在ViewController 中代码如下。
//MARK
funcbanksCardView(view: AATBanksCardView,numberOfRows:Int)->Int{
returncardListArray.count;
}
funcbanksCardView(view: AATBanksCardView,viewForRowAtIndex:Int)->UIView {
letcardView=UINib(nibName:"AATBankCard",bundle: Bundle.main).instantiate(withOwner:nil,options:nil).firstas!AATBankCard
cardView.frame=CGRect(x:0,y:0,width:360,height:120)
//cardView.backgroundColor = AATCommonBgColor;
letmode:AATBankCardModel=cardListArray[viewForRowAtIndex]
cardView.model=mode;
//
returncardView
}
funcbanksCardView(view: AATBanksCardView,heightForRowAtIndex:Int)->Float{
return120
}
funcbanksCardView(view: AATBanksCardView,heightForHeadViewAtIndex:Int)->Float{
return100
}
//MARK --- banksCardView 代理 点击 某个 卡片
funcbanksCardView(view: AATBanksCardView,didSelectViewAtIndex:Int) {
print("\(didSelectViewAtIndex)===")
}