Можно ли изменить изображение ячейки без создания собственного класса ячейки? - PullRequest
0 голосов
/ 01 ноября 2018

В Xcode, если, скажем, у меня есть UICollectionViewCell с UIImageView, я привык создавать собственный класс ячеек для доступа к UIImage. Однако нужно ли это? Я убежден, что мне не нужно создавать собственный класс ячейки только для доступа к UIImage.

Должен ли я сделать что-то вроде ...

for var subview in cell.subviews
{
    if subview is UIImageView
    {
        subview = UIImageView()
        subview.image = //change image here
    }
}

Спасибо!

Ответы [ 2 ]

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

Если вы серьезно против подкласса UICollectionViewCell, у этих объектов есть свойство contentView , к которому вы можете добавить изображение. После этого вы можете позвонить cell.contentView.layer.contents = someImage.cgImage, и вам не нужно будет дурачиться с недокументированными подпредставлениями.

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

Никогда не копайтесь в частной структуре представлений subview. Эта реализация может измениться в любом обновлении iOS. Это изображение, которое вы находите, предназначено для других целей.

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

Предоставьте свойство в своем пользовательском классе ячеек, чтобы упростить доступ к этому виду изображения в методе cellForItemAt.

...