У меня есть UIImageView (позволяет называть его myImageView) в UICollectionViewCell с его голыми необходимыми ограничениями. Я использую раскадровки и соединяя взгляды и код с viewWithTag
.Невозможно скрыть или удалить виды в UICollectionViewCell при использовании Autolayout
В cellForItemAtIndexPath, есть условие, согласно которому, например:
if (1 + 1 == 2)
myImageView.hidden = YES;
else
myImageView.hidden = NO
Я поставил точки останова и проверить, что код был выполнен, но myImageView не получает скрытое для первой партии видимых ячеек (при условии, что все они выполнили условие).
Когда я прокручиваю вниз, чтобы показать новые (или повторно используемые) ячейки, все работает так, как ожидалось (ячейки, которые удовлетворяли условию и должны быть скрыты, скрыты, наоборот). Он также работает так, как ожидалось, когда я прокручиваю назад, чтобы снова открыть первую партию ячеек.
Проблема заключается только в первой партии видимых ячеек.
Я попробовал removeFromSuperview
вместо того, чтобы скрывать камеры, но не повезло и там.
Есть ли подходящий способ или какие-либо рекомендации при работе с автозапуском и UICollectionViews в таких ситуациях?
Является ли условие истинным до первого вызова 'cellForItemAtIndexPath'? Похоже, что это становится истинным после того, как первые ячейки уже были отображены, и вы не вызвали reloadData – Paulw11
@ Paulw11 Я извлекаю данные через API. Получено из API - массив словарей, и условие, чтобы скрыть это изображение, находится в этом словаре. Я вызываю reloadData после того, как я успешно извлекаю данные из API. Независимо от того, изначально ли скрыто изображение или нет, оно должно обновляться соответствующим образом в соответствии с условием if else, поскольку я правильно рассмотрел оба случая? – Ryan
Он должен. Есть ли конкретная причина, по которой вы используете теги представления вместо пользовательского класса ячеек с IBOutlets? – Paulw11