私はUITableView内にUICollectionViewCellを持っています。私はUITableView各行の選択されたUICollectionViewCellを強調表示しようとしています。 UITableViewがリロードすると、選択したセルが強調表示されます。ここでのサンプルコードは、次のとおりです。UITableViewCellの内部にあるUICollectionViewCellの選択したインデックスパスを配列に保存するにはどうすればよいですか?
var selectedIndexes = [IndexPath]()
var familyAModelArray : [[Child1]] = []
var childAModelArray : [Child1] = []
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return familyAModelArray[collectionView.tag].count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! ChildCollectionViewCell
cell.nameLabel.text = childAModelArray[indexPath.row].person! // or childArray
cell.profilePicture.sd_setImage(with: URL(string: "\(baseUrl)\(childAModelArray[indexPath.row].image!)"), placeholderImage: #imageLiteral(resourceName: "avatar.png"), options: [.continueInBackground,.progressiveDownload])
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectedIndexes.append(indexPath)
let i = selectedIndexes[collectionView.tag][indexPath.row]
}
ここで私は、範囲外のインデックスを得た:?任意のアイデアをこれを達成するためにlet i = selectedIndexes[collectionView.tag][indexPath.row]
どのように事前に感謝します?。
インデックスパスを余分な配列に保存するのではなく、データモデルにプロパティを追加して 'selected'状態を示します。 – vadian
@vadian返信いただきありがとうございます。選択した状態をboolとして示すデータモデルにプロパティを追加すると、didSelectItemAt indexPath関数からどのようにアクセスできますか? – Shibili