Перекрытие текста в заголовках представления uicollection для разных разделов - PullRequest
1 голос
/ 08 июля 2020

Я быстро добавил разные текстовые метки в заголовки коллекции для каждого раздела. Я использую uireusableviews для заголовков. Моя проблема заключается в том, что я прокручиваю текст в метках разных разделов, которые перекрываются друг с другом. Я попытался установить текстовую метку на «» перед изменением текста, но проблема все еще сохраняется.

 func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    if(kind == UICollectionView.elementKindSectionHeader){
       let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "h", for: indexPath) as? UICollectionViewCell
        let txtlab = UILabel()
        txtlab.text = ""
        if(indexPath.section%2 == 0){
            txtlab.text = "Header"}
        else{
            txtlab.text = "another header"
        }
        cell?.addSubview(txtlab)
        txtlab.translatesAutoresizingMaskIntoConstraints = false
        txtlab.centerYAnchor.constraint(equalTo: cell!.centerYAnchor).isActive = true
        txtlab.centerXAnchor.constraint(equalTo: cell!.centerXAnchor).isActive = true
        cell?.backgroundColor = .green
        return cell!
    }

Изображение возникшей проблемы

1 Ответ

0 голосов
/ 08 июля 2020

Вам необходимо очистить представления, прежде чем создавать новые.

Поместите этот метод, который создает заголовок вверху.

for view in myView {
myView.removeFromSuperview()
}

Изменить, я не видел ваш код.

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

...