Дизайн UICollectionViewCell на основе четного и нечетного индекса ячейки в Swift iOS - PullRequest
0 голосов
/ 28 мая 2018

Я застрял на этой проблеме в течение нескольких недель.Я пытаюсь создать коллекцию, в которой четная ячейка имеет метку с левой стороны, а нечетная ячейка имеет метку с правой стороны.Первоначально дизайн в порядке, и код работает нормально, но когда пользователь начинает прокручивать, изменяется indexPath, и, следовательно, метка не выравнивается, как хотелось бы.На рисунке показан простой желаемый макет.Кто-нибудь знает решение этой проблемы?

Желаемый интерфейс:

Here's the link to the desired output

1 Ответ

0 голосов
/ 28 мая 2018

Вы могли бы сделать это в ваших UICollectionViewDataSource методах.

Но я бы сказал, что самый простой способ сделать это - внутри apply(_ layoutAttributes:) метода ячейки.

Просто создайте подкласс ячейки и переопределите этот метод следующим образом:

class MyCollectionViewCell: UICollectionViewCell {
    var myLabel: UILabel!

    override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) {
        super.apply(layoutAttributes)

        let isEven = layoutAttributes.indexPath.row % 2 == 0

        if isEven {
            self.myLabel.textAlignment = .right
        } else {
            self.myLabel.textAlignment = .left
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...