swift 使用collectionview寫的新手引導
直接上代碼:
import UIKit
let 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(in collectionView: UICollectionView) -> Int {
return 1
}
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.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
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 = 10
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.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