๋ฌธ์
ํ ํ๋ฉด์์ ์ถํ grid ํํ๋ก๋ ๋ณผ ์ ์๋๋ก ๊ตฌํํ๊ธฐ ์ํด, ๋ฆฌ์คํธ์ฒ๋ผ ๋ณด์ด์ง๋ง UICollectionView๋ก ๊ตฌํํ์๋ค. ๋ฐ์ด์ ์ญ์ ๊ธฐ๋ฅ์ ๋น์ฐํ ๋ฃ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ๊ณ์ ์ปฌ๋ ์ ๋ทฐ๋ก ๊ฐ๋ฐ ์ค,, ์๋ฟ์ธ.. ๊นจ๋ฌ์๋ค.. UICollectionView์๋ trailingSwipeAction ๊ธฐ๋ฅ์ด UITableView์ฒ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋กํ ์ฝ ๋ฉ์๋๊ฐ ์ ๊ณต๋์ง ์์์,,,,,,
ํด๊ฒฐ
private func setCollectionViewCompositionalLayout() {
var configuration = UICollectionLayoutListConfiguration(appearance: .plain)
configuration.showsSeparators = true
configuration.trailingSwipeActionsConfigurationProvider = { [unowned self] indexPath in
let delete = UIContextualAction(style: .normal, title: nil) { action, view, actionPerformed in
if let deleteCompletion = self.deleteCompletion {
deleteCompletion(indexPath.row)
}
actionPerformed(true)
}
delete.image = UIImage(systemName: "trash.fill")
return .init(actions: [delete])
}
let layout = UICollectionViewCompositionalLayout.list(using: configuration)
collectionView.setCollectionViewLayout(layout, animated: true)
}
์ฐ์ ๊ธฐ์กด๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ์ฒ๋ผ ํํํ๊ธฐ ์ํด, UICollectionLayoutListConfiguration๊ณผ UICollectionViewCompositionalLayout์ ์ฌ์ฉํ์ฌ Collection View๋ฅผ Table View์ฒ๋ผ ํํํ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด configuration์ ๊ธฐ๋ณธ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ์ฌ, Table View์ฒ๋ผ separators๋ฅผ ๋ณด์ด๊ฒ ํ๊ฑฐ๋ leading/trailingSwipeActions์ ์ง์ ํ ์ ์์๋ค.
์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์๋์ฒ๋ผ ๋ฐ์ด์ ์ญ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ฑ๊ณตํ๋ค..!!!
+
UICollectionViewCompositionalLayout์ผ๋ก๋ sectionInset, minimumLineSpacing, minimumInteritemSpacing, itemSize ๋ฑ์ ์ง์ ํ ์ ์์๋ค.
Collection View Cell ๋ด๋ถ์ ๊ฐ์ฒด๋ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ ํฌ๊ธฐ๊ฐ ์ง์ ๋๋ ๊ฒ ๊ฐ์๋ค.
posterImageView.snp.makeConstraints { make in
make.leading.equalTo(checkButton.snp.trailing).offset(8)
make.centerY.equalToSuperview()
make.height.equalToSuperview().multipliedBy(0.8)
make.width.equalTo(posterImageView.snp.height).multipliedBy(0.67)
}
๊ธฐ์กด - UICollectionViewFlowLayout ์ ์ฉ ์ ์ ๋ด๋ถ ์ค๋ธ์ ํธ ๋ ์ด์์ ์ง์
posterImageView.snp.makeConstraints { make in
make.leading.equalTo(checkButton.snp.trailing).offset(8)
make.centerY.equalToSuperview()
let screenHeight = UIScreen.main.bounds.height
let imageHeight = screenHeight * 0.12
make.height.equalTo(imageHeight)
make.width.equalTo(posterImageView.snp.height).multipliedBy(0.67)
}
UICollectionViewCompositionalLayout ์ ์ฉ ์ ์ ๋ด๋ถ ์ค๋ธ์ ํธ ๋ ์ด์์
๋ฐ๋ผ์, ์ ๋ด๋ถ ๊ฐ์ฒด์ ํฌ๊ธฐ ์ง์ ์ ์ํ ๊ฒฝ์ฐ, Superview์ ์์กดํ์ง ์๋๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ ์ด์์ ์ด์๋ฅผ ํด๊ฒฐํ์๋๋ฐ, ๋ง๋ ๋ฐฉ๋ฒ์ธ์ง ํ์ธ์ด ํ์ํ๋ค,,
'๐งฏ Troubleshooting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Cheliz] UITabBarItem์ SF Symbol ์ฌ์ด์ฆ ์กฐ์ Issue (0) | 2023.02.09 |
---|---|
[Cheliz] Realm ์ค๋ณต ์ถ๊ฐ ๋ฐฉ์ง (0) | 2023.02.09 |
[Cheliz] UITableView ์ฌ์ฉ์ฑ ํฅ์ (0) | 2023.02.09 |
[Cheliz] UICollectionViewCell ๋ด ๊ฐ์ฒด์ action ์ฒ๋ฆฌ (0) | 2023.02.09 |
[Cheliz] Enumeration ํ์ ์ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ๋ชจ๋ธ๋ก parsingํ๊ธฐ (0) | 2023.02.09 |