1. 밀어서 셀 삭제하기
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete{
TYBucket.dummyTYB.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .bottom)
print(TYBucket.dummyTYB.endIndex)
}
}
생각보다 너무나 간단하게 끝났다!!
셀을 밀어서 삭제하는 경우, TYBucket의 dummyTYB에서 해당 인덱스의 데이터를 사용한 후
테이블 뷰의 해당 indexPath 셀도 지워 준다
셀을 삭제했을때 데이터가 제대로 삭제되었는지 확인하기 위에 print코드를 추가해주었다!!
2. 체크박스
cell 내용을 채우는 부분에서의 check버튼의 코드는 다음과 같다.
버튼을 클릭할 때마다 accessoryButtonTapped함수를 호출하여 버튼의 색을 바꿔준다.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "thisYearCell",for:indexPath) as? ThisYearTableViewCell else{
return UITableViewCell()
}
let target=TYBucket.dummyTYB[indexPath.row]
cell.bucketLabel.text=target.content
let checkButton = UIButton(type: .system)
checkButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
checkButton.setImage(UIImage(named: "11"), for: .normal)
checkButton.addTarget(self, action: #selector(FirstViewController.accessoryButtonTapped(sender:)), for: .touchUpInside)
checkButton.tag = indexPath.row
cell.accessoryView = checkButton
cell.accessoryView?.tintColor = TYBucket.dummyTYB[indexPath.row].iDidIt != false ? .systemBlue : .lightGray
return cell
}
accessoryButtonTapped 함수
@objc func accessoryButtonTapped(sender : UIButton){
//신규체크?
if TYBucket.dummyTYB[sender.tag].iDidIt == false{
TYBucket.dummyTYB[sender.tag].iDidIt = true
}else{
TYBucket.dummyTYB[sender.tag].iDidIt = false
}
//값 변경 확인
print(TYBucket.dummyTYB[sender.tag].iDidIt)
sender.tintColor=TYBucket.dummyTYB[sender.tag].iDidIt != false ? .systemBlue : .lightGray
}
이번 코드도 작년 여~행님 어플 참고를 많이했다ㅠㅠㅠ이게 이렇게 도움될 줄이야ㅠㅠㅠㅠ
내일은 life버킷 화면을 구성해보기~~
반응형
'기록 > 공부기록👩🏻💻' 카테고리의 다른 글
[공부기록]100일_6일차 (0) | 2020.09.12 |
---|---|
[공부기록]100일_5일차 (0) | 2020.09.11 |
[공부기록]100일_4일차 (0) | 2020.09.10 |
[공부기록]100일_3일차 (0) | 2020.09.09 |
[공부기록]100일_1일차 (0) | 2020.09.07 |