Во-первых, извините, но я не очень хорош в Engli sh.
В любом случае, я хочу выбрать все ячейки в UICollectionViewCell, когда я нажимаю UIButton за пределами UICollectionView. Но я не знаю, как мне это сделать.
Я думаю, что это будет возможно с использованием коллекций UIButton, таких как 5 звезд. Я просто попробую.
хорошо ... нажмите кнопку ниже. Клетки в голубом - ложь.
Главный вид
Если вы нажмете кнопку «Каждый день», все ячейки будут красными. Ячейки в красном означает, что он выбран.
Выбранный каждый день
Если вы нажмете кнопку «Выходные», две самые правые ячейки будут красными. теперь вы знаете, что UICollectionView означает «неделя». поэтому, если выбран «Выходной», остальные 5 дней будут выделены синим цветом.
Выбранные выходные
Я сделал это с помощью UICollectionView. но я не знаю, как мне управлять с помощью кнопки снаружи. если вам нужна дополнительная информация и код, или вы не понимаете, я отредактирую его или оставлю комментарий. Пожалуйста, скажите мне, как.
Код ViewController о UIButton и UICollectionView здесь. и в CollectionViewCell есть просмотр изображений ... вот и все ...
import UIKit
class CreateViewController: UIViewController {
@IBOutlet weak var titleTextField: UITextField!
@IBOutlet weak var MotivTextField: UITextField!
@IBOutlet weak var repeatCollectionView: UICollectionView!
@IBAction func everydayBtn(_ sender: Any) {
// empty
}
@IBAction func weekdayBtn(_ sender: Any) {
// empty
}
@IBAction func weekendBtn(_ sender: Any) {
// empty
}
var selectedDay = [Bool]()
override func viewDidLoad() {
super.viewDidLoad()
for _ in 0...7 {
self.selectedDay.append(false)
}
repeatCollectionView.delegate = self
repeatCollectionView.dataSource = self
repeatCollectionView.isScrollEnabled = false
}
}
extension CreateViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) as? RepeatDayCVCell {
cell.dayBtn.backgroundColor = UIColor.red
}
}
}
extension CreateViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 7
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "RepeatDayCVCell", for: indexPath) as! RepeatDayCVCell
if self.selectedDay[indexPath.row] == true {
cell.dayBtn.backgroundColor = UIColor.red
}
else {
cell.dayBtn.backgroundColor = UIColor.blue
}
return cell
}
}