콜렉션 뷰를 사용하여 데이터 배열을 가져 오는 앱이 있습니다.콜렉션 뷰 셀에서 버튼처럼 구현하기
스토리 보드를 통해 컬렉션보기 셀에 버튼을 추가했습니다. 사용자가 버튼을 클릭하면 선택한 상태가 변경됩니다. 어느 것이 잘 작동하는지.
그런 다음 NSUserDefaults를 사용하여 키 "isSelected"에 대한 UIButton의 부울 값을 저장하고 검색하려고했습니다.
이것은 bool 값을 변경하고 NSUserDefault를 사용하여 저장하는 방법입니다.
@IBAction func likeBtn(_ sender: UIButton) {
if sender.isSelected == false {
sender.isSelected = true
let defaults = UserDefaults.standard
defaults.set(true, forKey: "isSelected")
}
else {
sender.isSelected = false
let defaults = UserDefaults.standard
defaults.set(false, forKey: "isSelected")
}
}
그리고 내가있는 UIButton에 대한 부울 값을 가져 오는 시도 내 cellForItemAt의 indexPath에서 ..
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = newsfeedColView.dequeueReusableCell(withReuseIdentifier: "NewsFeed", for: indexPath) as! NewsFeedCollectionViewCell
cell.likeBtn.addTarget(self, action: #selector(NewsFeedViewController.likeBtn(_:)), for: UIControlEvents.touchUpInside)
var defaults = UserDefaults.standard
var state = defaults.bool(forKey: "isSelected")
cell.likeBtn.isSelected = state
return cell
}
모든 것이 내가 응용 프로그램을 사용하고 있습니다까지 잘 작동하지만 난 다시 응용 프로그램 오픈을 종료 할 때, 저장된 bool 값은 이전에 앱을 사용하여 선택한 셀에서가 아니라 각 셀의 UIButton에 할당됩니다.
NSUserDefault를 사용하여 저장하는 동안 인덱스 경로를 지정해야한다고 생각합니다. 그러나 내가 어떻게 신속하게 Xcode에 익숙한 지 알 수 없습니다. 앞으로 나아갈 방법에 대한 도움.
Screen Shot of the viewcontroller
어떤 도움이되었습니다 ...이 오랜 여기를 빨아 ..이 상황을 해결하는 방법을 알아낼 질수 ... 제발
..
1) 사용자 정의를 수행 할 필요가 없습니다. 'likeBtn.isSelected'를 사용하여 여전히'cellForItemAt' 내의 버튼을 참조 할 수 있습니다. 2) userdefaults에'index.row'를 저장해야합니다. 3) 버튼은 viewController의 뷰와 관련이 있습니다. * 모든 * 세포. – Honey
나는 유감 스럽다 그러나 나는 당신이 함축하고있는 것을 얻는 것을 didnt한다 ?? –
어느 부분입니까? 1,2,3? – Honey