У меня есть collectionView с расширяемыми и складными секциями. Когда я свернул разделы, содержимое внутри таблицы все еще присутствует. Мне было интересно, если кто-нибудь знал, как это изменить? У меня есть UicollectionViewCell, в котором я создаю представления программно. Однако я думал, что мои проблемы возникают, потому что я не создаю представления внутри cellForItemAt. Я оставлю свой код ниже, пожалуйста, дайте мне знать, что вы думаете.
// это то, как я создаю sectionHeaders и регистрирую collectionViewCell.
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
var reusableview = UICollectionReusableView()
if (kind == UICollectionView.elementKindSectionHeader) {
let section = indexPath.section
switch (section) {
case 0:
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerIdentifier, for: indexPath) as? userProfileHeader
if let user = self.user {
headerView?.myUser = user
} else if let userToLoad = self.userToLoad {
headerView?.myUser = userToLoad
}
reusableview = headerView!
case 1:
let sectionViews = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: skillsSection, for: indexPath) as? skillsprefSection
sectionViews?.downArrowBtn.addTarget(self, action: #selector(showCells), for: .touchUpInside)
sectionViews?.headerLabel.text = "Skills & Preferences"
if expandedRow == false {
sectionViews?.contentView.isHidden = true
}
reusableview = sectionViews!
case 2:
let bioSectionThing = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: bioSectionHeader, for: indexPath) as? bioSection
bioSectionThing?.downArrowBtn.addTarget(self, action: #selector(showCells), for: .touchUpInside)
bioSectionThing?.headerLabel.text = "Bio"
reusableview = bioSectionThing!
case 3:
let reviewSectionThing = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: reviewSectionHeader, for: indexPath) as? reviewSection
reviewSectionThing?.downArrowBtn.addTarget(self, action: #selector(showCells), for: .touchUpInside)
reviewSectionThing?.headerLabel.text = "Reviews"
reusableview = reviewSectionThing!
case 4:
let recentSectionThing = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: recentSectionHeader, for: indexPath) as? recentSection
recentSectionThing?.downArrowBtn.addTarget(self, action: #selector(showCells), for: .touchUpInside)
recentSectionThing?.headerLabel.text = "Recent"
reusableview = recentSectionThing!
default:
return reusableview
}
}
return reusableview
}
// это то, как я расширяю / сужаю секции
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
if(section==0) {
return .init(width: view.frame.width, height: 340)
} else if (section==1) {
if expandedRow == true {
return .init(width: view.frame.width, height: 450)
} else {
return .init(width: view.frame.width, height: 133)
}
} else if (section==2) {
if expandedRow == true {
return .init(width: view.frame.width, height: 400)
} else {
return .init(width: view.frame.width, height: 133)
}
} else if (section==3) {
if expandedRow == true {
return .init(width: view.frame.width, height: 400)
} else {
return .init(width: view.frame.width, height: 133)
}
} else if (section==4) {
if expandedRow == true {
return .init(width: view.frame.width, height: 400)
} else {
return .init(width: view.frame.width, height: 133)
}
} else {
return .init(width: view.frame.width, height: 100)
}
}
это то, как изображение выглядит в свернутом виде.
и вот как выглядит раздел в развернутом виде.
Спасибо за любую помощь. Моя цель состоит в том, чтобы, когда раздел свернут, скрыть весь контент, связанный с этим разделом. и покажите его, когда раздел развернется.