Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

[iPhone Tutorial] 개봉영화 목록 표시 – UITableView, UISegmentedControl 활용 (2) [完]

전편에 이어, 이번에는 정렬 기능을 구현하도록 하겠습니다.

 

5. 단순 배열을 Dictionary 로 묶어주기
NSArray는 1차 배열이고, 기본적으로 다차원 배열을 지원하고 있지 않습니다. 그래서 NSMutableArray와 NSMutableDictionary를 활용해야 합니다. 아래 코드를 viewDidLoad 맨 아래에 추가하시면 됩니다. 다소 생소한 개념인 NSMutableArray, NSMutableDictionary 에 대해서는 나중에 별도의 포스팅으로 알아보고, 여기서는 어떻게 활용하는지 예제로 보겠습니다.

ViewController.h 에 새로운 변수 2개를 선언합니다.

 

viewDidLoad : 2개의 Array를 1개의 Dictionary 로 묶어서 listArray 에 넣습니다.

titleArray와 releaseArray 10개를 순서대로 tempDictionary 에 할당합니다. Dictionary 에는 Key – Value 가 연결되어 쌍으로 관리를 해야 하는데, ‘title’ Key에 titleArray 값을 대입하고 ‘release_date’ Key에 releaseArray 값을 대입합니다. 그리고 그렇게 만들어진 Dictionary 를 listArray에 추가합니다. listArray에는 한 영화의 제목과 개봉일이 세트로 추가되는 것입니다.

 

cellForRowAtIndexPath : 테이블뷰에 titleArray, releaseArray 값을 각각 넣어줬었는데, 이제는 listArray 의 값을 넣습니다. 4번에서 넣어줬던 내용을 아래 내용으로 변경합니다.


6. semented control 을 활용한 정렬하기
UISegmentedControl 의 값이 변경될 때마다, 제목이나 개봉일순으로 정렬을 해야겠죠. 일단, 메소드부터 선언하겠습니다.

ViewController.h 에 아래와 같이 메소드를 선언합니다.

 

ViewController.m 에는 changeSort 함수를 구현합니다.

nameSorter 를 사용하여 어떤 Key 값으로 정렬할지, 오름차순인지 내림차순인지 설정합니다. 마지막으로 myTableView를 새로고침하여 정렬한 값을 테이블뷰에 반영합니다.

 

ViewController.xib 에는 UISegmentedControl의 값이 변경될 때, changeSort 메소드가 호출되도록 설정합니다. UISegmentedControl 을 FirstResponder 로 연결하면 아래의 이미지처럼 연결되는 것을 확인하실 수 있습니다.

 

이상, 처음에 구현하고자 한 내용은 전부 구현되었습니다. 2번째 포스팅은 생각보다 짧게 끝났네요.

기념(?)으로 테이블뷰를 표현할 수 있는 방법을 간단히 소개하겠습니다. 실제 앱을 받아보면 이미지도 들어가고 매우 다양한 포맷으로 사용되고 있는 것을 알 수 있는데요. 그것을 다루려면 별도의 포스팅으로 하는 것이 좋을 것 같고, 여기서는 기본적으로 지원하는 4가지 타입에 대해서 소개합니다.

ViewController.m 의 cellForRowAtIndexPath 메소드에서 스타일을 변경할 수 있습니다.

UITableViewCellStyleValue1 이 현재까지 본 레이아웃이고, 나머지 3개는 아래와 같습니다.


       [UITableViewCellStyleSubtitle] 

 


       [UITableViewCellStyleDefault]

 


       [UITableViewCellStyleValue2]

 

이상으로, 첫번째 튜토리얼을 마무리합니다.
끝까지 읽어주셔서 감사합니다. ^^