Невозможно изменить цвет представления в представлении UICollection - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь изменить цвет представления внутри uicollectionviewcell.Но я не могу изменить цвет.Когда я пытаюсь подключиться к контроллеру UIViewController к нашему контроллеру представления, он говорит, что «не может подключить повторяющийся контент как розетку».

Когда я изменяю фон ячейки, он выглядит так

Что касается округления, я использую вид и свойства придания ему радиуса слоя.

Я пытаюсь достичь: enter image description here

Значения получены из класса модели, который я создал, и присвоил его UIcolectionviewcell.Модель содержит только одно текстовое поле, в котором отображаются теги.

Когда пользователь выбирает какие-либо теги, фон и цвет текста изменяются. Я не должен этого достигать.Это может быть легко сделать, но я не могу этого достичь.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я добавил пример кода, чтобы удовлетворить ваши требования. Пожалуйста, обратитесь и попробуйте реализовать на основе следующего кода:

//Your model class
class TagModel{

    var tag:String!
    var selected:Bool!

    init(tag:String, selected:Bool) {

        self.tag = tag
        self.selected = selected
    }
}

//your cell with Xib
class TagCell:UICollectionViewCell{

    @IBOutlet weak var tagLabel: UILabel!

    override func awakeFromNib() {

        super.awakeFromNib()
    }

    func setTag(_ tagModel:TagModel){

        tagLabel.layer.masksToBounds = true
        tagLabel.layer.cornerRadius = tagLabel.frame.size.height/2

        tagLabel.text = tagModel.tag

        if tagModel.selected{

            tagLabel.textColor = .white
            tagLabel.backgroundColor = .blue
        }else{

            tagLabel.textColor = .gray
            tagLabel.backgroundColor = .lightGray
        }
    }
}

//Your ViewController which has `UICollectionView`
class TagViewController:UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{

    var tagModels:[TagModel]!

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

        tagModels[indexPath.item].selected = !tagModels[indexPath.item].selected

        collectionView.reloadItems(at: [indexPath])
    }
}

Примечание: Пожалуйста, используйте этот код в качестве примера и вносите изменения на основена ваших реализациях.

0 голосов
/ 27 ноября 2018

Попробуйте изменить цвет фона вашего округленного элемента, а не всей ячейки. Вы можете создать пользовательский UICollectionViewCell и использовать его для доступа к различным элементам внутри него, например к текстовому полю с вашим тегом

...