Swift使用collectionview写的新手引导
直接上代码:
import UIKitlet
leadImageNameArr = ["start1","start2","start3","start4"]
class TTLeadNewUserViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {
var collectionView : UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
setUpCollectionView()
}
fileprivate func setUpCollectionView() {
let layout = UICollectionViewFlowLayout() layout.itemSize= CGSize.init(width: MainWide, height: MainHeight) layout.minimumLineSpacing=0
layout.minimumInteritemSpacing=0
layout.scrollDirection=.horizontal
collectionView = UICollectionView.init(frame: self.view.bounds, collectionViewLayout: layout) collectionView.isPagingEnabled= true
collectionView.register(LeadImageCollectionCell.self, forCellWithReuseIdentifier:"LeadImageCollectionCell")
collectionView.dataSource= self
collectionView.delegate= self
collectionView.showsHorizontalScrollIndicator= false
self.view.addSubview(collectionView) }
func numberOfSections(incollectionView: UICollectionView) -> Int { return1}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return leadImageNameArr.count}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:"LeadImageCollectionCell", for: indexPath) as! LeadImageCollectionCell
cell.setImage(leadImageNameArr[indexPath.row])
if indexPath.row== leadImageNameArr.count-1{ cell.setButtonOnImage() }
return cell
}
override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }/*
class LeadImageCollectionCell: UICollectionViewCell {
fileprivate var imageView : UIImageView!
fileprivate var button : UIButton?
override init(frame: CGRect) {
super.init(frame: frame)
setUpImage(frame) }
fileprivate func setUpImage(_ frame:CGRect) {
imageView = UIImageView()
self.contentView.addSubview(imageView) }
override func layoutSubviews() { imageView.frame= CGRect.init(x:0,y:0, width: self.frame.size.width, height: self.frame.size.height) }
open func setImage(_ imageName : String){ removeButton() imageView.image= UIImage.init(named: imageName) }
func removeButton() { if button != nil {
button?.removeFromSuperview()
} }
func setButtonOnImage() {
let btn = UIButton.init(type:.custom)
btn.frame= CGRect.init(x: MainWide*0.25,y: MainHeight*0.8, width: MainWide*0.5, height: MainHeight*0.05)
btn.setTitleColor(UIColor.collorWirhRGB(r:227, g:62, b:42), for:.normal)
btn.setTitle("立即体验", for:.normal)
btn.layer.cornerRadius=10btn.layer.masksToBounds= true btn.layer.borderWidth=1btn.layer.borderColor= UIColor.orange.cgColor
btn.addTarget(self, action:#selector(goHomeVc), for: UIControlEvents.touchUpInside)button = btn self.contentView.addSubview(btn) }
@objc func goHomeVc(){ //跳转到homeVc //TTPopTool.gohomeVc() }
required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }}
轮播图也可以使用collectionview写的。。
权当自己做个笔记了。。
swift 版本 没有什么动画,这个collectionview也可以用来做轮播图
另外推荐一个自己写的弹出自定义视图的工具,支持pod[给个Star](https://github.com/aasdsjk/JKViewAnimation)