104 lines
4.2 KiB
Swift
104 lines
4.2 KiB
Swift
|
//
|
||
|
// DiscoverPopularSongs.swift
|
||
|
// wyy
|
||
|
//
|
||
|
// Created by 施书顺 on 2021/3/5.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
class DiscoverPopularSongsView: UIView, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
|
||
|
|
||
|
struct SongData {
|
||
|
var albumImageName: String
|
||
|
var songName: String
|
||
|
var authorName: String
|
||
|
var comment: String
|
||
|
}
|
||
|
|
||
|
let popularSongLabel = UILabel()
|
||
|
let playButton = UIButton()
|
||
|
|
||
|
var collectionView : UICollectionView!
|
||
|
let layout = UICollectionViewFlowLayout()
|
||
|
var dataSource = [
|
||
|
SongData(albumImageName: "album1", songName: "Song Name", authorName: "Author", comment: "This is a comment"),
|
||
|
SongData(albumImageName: "album2", songName: "Song Name", authorName: "Author", comment: "This is a comment"),
|
||
|
SongData(albumImageName: "album3", songName: "Song Name", authorName: "Author", comment: "This is a comment"),
|
||
|
SongData(albumImageName: "album3", songName: "Song Name", authorName: "Author", comment: "This is a comment"),
|
||
|
SongData(albumImageName: "album2", songName: "Song Name", authorName: "Author", comment: "This is a comment"),
|
||
|
SongData(albumImageName: "album1", songName: "Song Name", authorName: "Author", comment: "This is a comment")]
|
||
|
|
||
|
init(){
|
||
|
super.init(frame: CGRect.zero)
|
||
|
layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
|
||
|
layout.itemSize = CGSize(width: 250, height: 50)
|
||
|
layout.scrollDirection = .horizontal
|
||
|
collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
|
||
|
collectionView.collectionViewLayout = layout
|
||
|
collectionView.dataSource = self
|
||
|
collectionView.delegate = self
|
||
|
collectionView.backgroundColor = UIColor.white
|
||
|
// collectionView.alwaysBounceVertical = true
|
||
|
collectionView.register(PopularSongCell.self, forCellWithReuseIdentifier: "cell")
|
||
|
// collectionView.contentSize = CGSize(width: 600, height: 200)
|
||
|
addSubview(collectionView)
|
||
|
collectionView.snp.makeConstraints{ make in
|
||
|
make.width.equalToSuperview()
|
||
|
make.height.equalTo(200)
|
||
|
make.top.equalTo(20)
|
||
|
}
|
||
|
|
||
|
popularSongLabel.text = "歌曲推荐"
|
||
|
popularSongLabel.font = UIFont.systemFont(ofSize: 20, weight: .bold)
|
||
|
addSubview(popularSongLabel)
|
||
|
popularSongLabel.snp.makeConstraints{ make in
|
||
|
make.top.equalTo(5)
|
||
|
make.left.equalTo(15)
|
||
|
}
|
||
|
|
||
|
playButton.setTitle(" ▶ 播放 ", for: .normal)
|
||
|
playButton.setTitleColor(.black, for: .normal)
|
||
|
playButton.titleLabel?.font = UIFont.systemFont(ofSize: 15)
|
||
|
playButton.layer.borderColor = UIColor.gray.withAlphaComponent(0.5).cgColor
|
||
|
playButton.layer.borderWidth = 1.0
|
||
|
playButton.layer.cornerRadius = 10
|
||
|
addSubview(playButton)
|
||
|
playButton.snp.makeConstraints{ make in
|
||
|
make.top.equalTo(0)
|
||
|
make.right.equalTo(-10)
|
||
|
make.width.equalTo(60)
|
||
|
make.height.equalTo(30)
|
||
|
}
|
||
|
|
||
|
collectionView.reloadData()
|
||
|
}
|
||
|
|
||
|
required init?(coder: NSCoder) {
|
||
|
fatalError("init(coder:) has not been implemented")
|
||
|
}
|
||
|
|
||
|
|
||
|
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
|
||
|
dataSource.count
|
||
|
}
|
||
|
|
||
|
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||
|
var cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as? PopularSongCell
|
||
|
let data = dataSource[indexPath.row]
|
||
|
if cell == nil {
|
||
|
cell = PopularSongCell(frame: CGRect.zero)
|
||
|
}
|
||
|
cell!.albumImageView.image = UIImage(named: data.albumImageName)
|
||
|
cell!.songLabel.text = data.songName
|
||
|
cell!.authorLabel.text = " - \(data.authorName)"
|
||
|
cell!.commentLabel.text = data.comment
|
||
|
return cell!
|
||
|
}
|
||
|
|
||
|
// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
|
||
|
// return CGSize(width: 200, height: 50)
|
||
|
// }
|
||
|
|
||
|
}
|