View

300x250

[iOS 앱개발 - Swift] 테이블뷰에 동적으로 셀 추가하기

지난번 포스팅에 만들어둔 테이블 뷰에 실행중에 버튼을 누르는 등의 액션으로 테이블 뷰에 셀을 추가하는 방법을 알아봅시다! 크게 어렵지는 않다고 생각이 드네욤!


일단 새로운 셀을 추가시키는 버튼을 스토리보드를 통해 배치해줍시다. 버튼을 끌고 테이블 뷰 위에 올려두면 셀처럼 테이블뷰의 요소로 포함되게 됩니다. 또, TextField를 하나 배치해서, 여기에 입력된 데이터를 새로 생성되는 셀의 타이틀로 넣어주도록 합시다!

 

 

이제 이 버튼을 누르면 어떤 액션을 취할지를 View Controller에 코드로 작성해줍시다.

 

우선 추가될 셀이 앞서 작성했던 0번, 1번 섹션 말고 2번 섹션에 포함되도록 앞에 작성했던 코드에서 섹션 개수를 수정해줬습니다.

먼저, 2번 섹션에 들어갈 데이터를 배열에 저장해, 각 원소를 각각의 셀에 대응시키는 방법으로 데이터를 관리하도록 합시다. String 타입의 빈 배열인 data 를 선언해두고, 버튼을 누르면 스토리보드에 넣어둔 textField 에서 문자열을 받아와 값을 넣어주도록 만들어봅시다.

 

 

이제 작성한 데이터를 이용해 테이블 뷰를 새로고침해줘야겠죠? 기본적으로 tableView의 새로고침은 reloadData()를 사용합니다. 그런데 이건 테이블뷰를 구성하는 모든 데이터를 다시 불러오는 메서드이기 때문에 제일 뒤에 추가된 데이터만 불러오면 되는 우리의 테이블에는 성능을 잡아먹는 부적절한 메서드라고 볼 수 있어요. 2번 섹션의 데이터만 다시 가져오는 메서드는 self.tableView.reloadSections() 를 사용해주면 됩니다. 이 메서드는 2개의 인자를 가져가는데, ''몇번 ~ 몇번의 섹션을 새로고침해줄 것인가?'' + ''새로고침 애니메이션은 어떻게 할것인가?''의 데이터를 전달하면 됩니다. 지금 작성하는 코드에서는 2번 섹션만 초기화하면 되고 애니메이션은 자동을 사용해볼게요.

 

위의 touchUpAddButton 에 이어지는 코드입니당

 

만약에 이 새로고침 메서드를 호출하게 되면, 이전 포스팅에서 작성했던 테이블뷰를 처음에 구성하는 메서드를 컴파일러가 알아서 호출해서 데이터를 받아가게 될텐데, 그때를 위해 2번 섹션에서 필요한 데이터를 가져가 셀의 타이틀로 만들어줄 수 있게 tableView() 메서드에 코드를 추가해줍니다.

 

 

이렇게 구성해주고 프로젝트를 빌드하면 다음과 같은 결과를 얻을 수 있습니다! 저는 약간의 추가기능으로 추가한 데이터를 없애는 Reset 버튼까지 한번 만들어봤어요. 그냥 data 배열을 초기화해주고 reload만 해주면 되니까 쉽게 만들 수 있을거예요! ㅋㅋㅋ

 

 


이제는 점점 그럴듯한 기능을 가진 앱을 만들 수 있을것만 같네요.ㅋㅋㅋ C 계열 언어만 쓰다가 이걸 공부하려하면 스위프트라는 언어도 되게 어색했었는데 좀 친해진 느낌도 들구요. 강의 계속 따라가면서 열심히 공부하고, 정리를 해놓아야 겠어요.

 

이 포스팅은 edwith 의 부스트코스 iOS 프로그래밍 강좌를 수강하면서 공부한 내용을 정리하는 글입니다. 강의전체 + 강의자료 전체를 무료로 이용할 수 있는 강좌이면서 네이버 아이디로 수강을 할 수 있기 때문에 프로그래밍에 기본기가 있는 사람이 iOS 프로그래밍에 입문하기 위해 선택하기에 적절한 강좌라고 생각됩니다! 그렇게 강의를 듣기위한 벽이 높지 않기 때문에, 아이폰 앱개발에 관심이 있는 분이라면 한번 들어보세요!

 

https://www.edwith.org/boostcourse-ios/joinLectures/12966

 

[부스트코스] iOS 프로그래밍 강좌소개 : edwith

- 부스트코스

www.edwith.org

 

320x100
Share Link
reply
반응형
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30