123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- //
- // PublishMusicListCell.swift
- // RainbowPlanet
- //
- // Created by Christopher on 2019/7/17.
- // Copyright © 2019 RainbowPlanet. All rights reserved.
- //
- import UIKit
- import RxSwift
- class PublishMusicListCell: UITableViewCell {
-
- var musicItemMdl: CommunityMusicItemModel? {
- didSet {
- titleLabel.text = self.musicItemMdl?.name
-
- if self.musicItemMdl?.isPlaying == true {
- iconImageView.image = kImage(name: "music_btn_pause")
- useButton.isHidden = false
- } else {
- iconImageView.image = kImage(name: "music_btn_play")
- useButton.isHidden = true
- }
-
- // 不选择音乐
- if self.musicItemMdl?.id == -1 {
- iconImageView.isHidden = true
- curPlayImageView.isHidden = true
- useButton.isHidden = true
- }
- }
- }
-
- var curMusicUrl: String? {
- didSet {
- // 是否为当前选中的音乐
- if self.curMusicUrl == self.musicItemMdl?.url && self.musicItemMdl?.id != -1 {
- curPlayImageView.isHidden = false
- } else {
- curPlayImageView.isHidden = true
- }
- }
- }
-
- let disposeBag = DisposeBag()
-
- typealias UseClickClosure = () -> Void
- var useClickClosure : UseClickClosure?
-
- class func cellWith(tableView:UITableView,indexPath:IndexPath) -> PublishMusicListCell {
- let ID = "PublishMusicListCell"
- tableView.register(PublishMusicListCell.self, forCellReuseIdentifier: ID)
- let cell : PublishMusicListCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! PublishMusicListCell
- cell.indexPath = indexPath
- return cell
- }
-
- override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
- super.init(style: style, reuseIdentifier: reuseIdentifier)
- setupViews()
- setupLayouts()
- }
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- var indexPath: IndexPath? {
- didSet {
-
- }
- }
-
- //MRAK: - 设置View
- private func setupViews() {
- self.selectionStyle = .none
- backgroundColor = UIColor.clear
-
- addSubview(iconImageView)
- addSubview(titleLabel)
- addSubview(curPlayImageView)
- addSubview(useButton)
- }
-
- private func setupLayouts() {
- iconImageView.snp.makeConstraints { (make) in
- make.left.equalTo(14)
- make.centerY.equalToSuperview()
- make.size.equalTo(18)
- }
-
- titleLabel.snp.makeConstraints { (make) in
- make.left.equalTo(iconImageView.snp_right).offset(8)
- make.centerY.equalToSuperview()
- make.height.equalTo(20)
- make.right.equalTo(-86)
- }
-
- curPlayImageView.snp.makeConstraints { (make) in
- make.right.equalTo(-37)
- make.centerY.equalToSuperview()
- make.size.equalTo(18)
- }
-
- useButton.snp.makeConstraints { (make) in
- make.right.equalTo(-14)
- make.centerY.equalToSuperview()
- make.width.equalTo(64)
- make.height.equalTo(26)
- }
-
- }
-
- private lazy var iconImageView: UIImageView = {
- let iconImageView = UIImageView()
- iconImageView.image = kImage(name: "music_btn_play")
- return iconImageView
- }()
-
- private lazy var titleLabel: UILabel = {
- let titleLabel = UILabel()
- titleLabel.textColor = kffffffColor
- titleLabel.font = kMediumFont14
- titleLabel.textAlignment = .left
- return titleLabel
- }()
-
- private lazy var curPlayImageView: UIImageView = {
- let curPlayImageView = UIImageView()
- curPlayImageView.image = kImage(name: "music_ico_selected")
- return curPlayImageView
- }()
-
- private lazy var useButton: UIButton = {
- let useButton = UIButton(type: UIButton.ButtonType.custom)
- useButton.setTitle("使用", for: UIControl.State.normal)
- useButton.titleLabel?.font = kRegularFont13
- useButton.setBackgroundImage(UIImage.imageWithColor(color: k62CC74Color), for: UIControl.State.normal)
- useButton.setTitleColor(kEnabledTitleColor, for: UIControl.State.normal)
- useButton.layer.cornerRadius = 13
- useButton.layer.masksToBounds = true
- useButton.rx.tap.subscribe(onNext: { [weak self] in
- if let useClickClosure = self?.useClickClosure {
- useClickClosure()
- }
- }).disposed(by: disposeBag)
- return useButton
- }()
-
- }
|