728x90
스크롤뷰 안에 테이블뷰를 넣으니 스크롤 안에 스크롤이 있는격이라 문제가 생겼다
테이블뷰 높이를 설정해 주면 문제 없었지만
내가 구현해 주고 싶은건 테이블뷰에 셀이 추가 되거나 삭제 될 때마다 높이가 달라져야 해서 함수를 만들어서 주었다
func reloadTableView() {
if timerLists.count <= 0 {
recentlyUsedLabel.isHidden = true
recentlyUsedTabelView.isHidden = true
}
else {
let rowHeight = 36
recentlyUsedTabelView.isHidden = false
recentlyUsedLabel.isHidden = false
recentlyUsedTabelView.snp.remakeConstraints {
$0.top.equalTo(recentlyUsedLabel.snp.bottom).offset(20)
$0.leading.bottom.trailing.equalToSuperview()
$0.height.equalTo(timerLists.count * rowHeight)
}
recentlyUsedTabelView.reloadData()
}
}
최근항목 리스트 배열에 아무것도 담기지 않으면 테이블뷰를 숨김합니다
배열에 추가가 되면 테이블뷰를 보여주고 배열에 담긴 갯수만큼 테이블뷰를 그려줍니다
기존에 그린 테이블뷰와 겹쳐서 오류가 날 수 있으니 remakeConstraints 로 다시 그려줍니다
그리고 테이블뷰 리로드!
테이블뷰 셀을 그려준는 메서드에 위 함수를 추가해 줍니다
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let timerToDelete = timerLists[indexPath.row]
deleteTimer(timer: timerToDelete)
timerLists.remove(at: indexPath.row)
recentlyUsedTabelView.deleteRows(at: [indexPath], with: .fade)
reloadTableView()
print("timerLists\(timerLists)")
}
}
728x90
'iOS Swift > Study' 카테고리의 다른 글
[Swift] 알람앱 - 타이머(7) 로컬 푸쉬 알림 구현 (0) | 2024.05.21 |
---|---|
[Swift] 알람앱 - 타이머(6) 최근 타이머 목록 저장, 삭제, 실행 (0) | 2024.05.21 |
[Swift] 알람앱 - 타이머(4) 상태변화에 따라서 UI 변경 및 로직 구현(시작, 일시정지, 재시작, 취소) (2) | 2024.05.16 |
[Swift] 알람앱 - 타이머(3) - 타이머 초를 HH:MM:SS 포맷으로 보여주기 (0) | 2024.05.15 |
[Swift] 알람앱 - 타이머(2) - 초까지 나오는 타이머 라이브러리 사용하기 - DurationPicker (4) | 2024.05.14 |
댓글