Вопрос отображения данных CollectionCell при использовании пользовательского сегментированного элемента управления в Swift - PullRequest
0 голосов
/ 12 июля 2019

Я создал пользовательский сегментированный элемент управления со ссылкой на "http://bitly.kr/fDz2Ma".. Однако, когда я выбираю конкретный элемент, мне нужно видеть ячейку представления коллекции, которая соответствует элементу, но я не нашел выбранный индекссегментированный элемент управления.

На сегодняшний день я создал пользовательские сегментированные элементы управления, но не нашел выбранный элемент кнопки индекса.

import UIKit

class MainBookViewController: UIViewController {

@IBOutlet weak var interfaceSegmented: CustomSegmentedControl! {
    didSet{
        interfaceSegmented.setButtonTitles(buttonTitles: ["A","B","C"])
        interfaceSegmented.selectorViewColor = .red
        interfaceSegmented.selectorTextColor = .red
    }
}


override func viewDidLoad() {
    super.viewDidLoad()

    codeSegmentedConfig()
}

func codeSegmentedConfig() {
    let codeSegmented = CustomSegmentedControl(frame: CGRect(x: 0, y: 90, width: self.view.frame.width, height: 50), buttonTitle: ["A","B","C""])
    codeSegmented.backgroundColor = .clear
    view.addSubview(codeSegmented)
}

}

extension MainBookViewController: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 1
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView
        .dequeueReusableCell(withReuseIdentifier: "MainBookCell", for: indexPath) as! MainBookCell

        cell.bookTitleLabel.text = "apple"
        cell.bookWriterLabel.text = "me"
        cell.bookImageView.image = UIImage(named: "3")

        return cell
    }
}

Если мне известен только индекс кнопки выбранного пользовательского сегментированного элемента управленияЯ хочу использовать оператор case, чтобы изменить данные в ячейке представления коллекции на индексный номер.

Если я знаю только индекс выбранного элемента кнопки, я планирую изменить ячейку представления коллекции, используяоператор case в коде CollectionViewDataSource.

1 Ответ

0 голосов
/ 12 июля 2019

Если бы я правильно понял ваш вопрос, вы могли бы добиться этого, сделав что-то вроде этого:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        switch interfaceSegmented.selectedSegmentIndex {
          case 0:
            //do something when selected segment index is 0
          case 1:
            //do something when selected segment index is 1
          default:
            break
    }
...