최초 작성일 : 2010/03/21 08:53


### TableViewSuite ###

================================================================================
DESCRIPTION:

This sample shows how to use UITableView through a progression of increasingly 
advanced applications that display information about time zones.

이 예제는 time zones에 관한 정보를 출력하는 점차로 개선되는 애플리케이션을 통해 
UITableView의 사용법을 보여준다.

* The first example shows a simple list of the time zone names. 
It shows how to display a simple data set in a table view.

첫 예제는 time zone 이름의 목록을 화면에 출력한다.
이것은 간단한 데이터 셋을 테이블 뷰에 표시하는 방법을 보여준다.

* The second example shows the time zones split into sections by region, 
with the region name as the section heading. It shows how to create an indexed table view.

두 번 째 예제는 분리된 각각의 영역에서 time zone의 목록을 보여주며 각 지역의 이름이 그 영역의
머릿말로 표시된다. 이것은 indexed table view를 생성하는 방법을 보여준다.

* The third example shows how to set up a table view to display an index. 
The time zones are separated into sections using UILocalizedIndexedCollation.

세 번 째 예제는 인덱스를 보여주기 위해 테이블 뷰를 설정하는 방법을 보여준다.
time zone들은 UILocalizedIndexedCollation을 통해 분리된 영역에 들어가게 된다.


When implementing a table view cell, there's a tension between optimal scrolling performance 
and optimal edit/reordering performance. 
You should typically use subviews in the cell's content view.

테이블 뷰 셀을 구현할 때 최적의 스크롤 성능과 최적의 편집/재정렬 성능사이에 주의를 기울여야 한다.
일반적으로 셀들의 컨텐트 뷰 안에 서브뷰를 사용하게 된다.

When you have an edit or reordering control, using subviews makes the implementation easier, 
and the animations perform better because UIKit doesn't have to redraw during animations.

편집 또는 재정렬 컨트롤을 가지고 작업을 할 때 서브뷰를 이용하는 것이 구현을 보다 쉽게해주며 UIKit이 애니메이션
진행 동안 다시 그리는 작업을 하지 않기 때문에 애니메이션의 성능도 더 좋아진다.

Subviews have two costs:
1) Initialization. This can be largely mitigated by reusing table cells.
2) Compositing. This can be largely mitigated by making the views opaque. 
Often, one translucent subview is fine, but more than one frequently 
causes frame drops while scrolling.

서브뷰들은 다음과 같은 2가지 작업을 필요로 한다:
1) 초기화. 이 작업은 테이블 셀들의 재사용을 통해 작업을 크게 경감할 수 있다.
2) 구성. 이 작업은 뷰를 불투명하게 만듦으로써 작업을 크게 경감할 수 있다.
때때로 반투명한 서브뷰는 보기에는 좋지만 자주 스크롤 되는 동안 프레임이 저하되는 원인이 되곤 한다. 

If the content is complex, however (more than about three subviews), scrolling performance may suffer. 
If this becomes a problem, you can instead draw directly in a subview of the table view cell's content view.

만일 내용이 될 데이터가 복잡한데다 3개 이상의 서브뷰를 사용하게 되면 스크로 성능은 많이 저하될 것이다.
만일 문제가 발생할 경우 셀의 컨텐트 뷰에 테이블 뷰의 서브 뷰를 직접 그리는 것이 좋을 것이다.


* The fourth example displays more information about each time zone, such as the time and 
relative day in that time zone. 
Its main aim is to show how you can customize a table view cell using subviews. 
It also introduces custom classes to represent regions and time zones to help reduce 
the overhead of calculating the required information -- these are also used in the fifth example.

네 번 째 예제는 각각의 time zone에 대해 시간,  해당 time zone에서의 상대적인 시간 등 추가적인 정보를 화면에 출력한다. 
이 예제의 중요 목표는 서브뷰를 이용하여 테이블 뷰 셀을 어떻게 커스터마이징 할 수 있는가 하는 것이다.
또한 지역과 time zone들을 표현하는 커스텀 클래스가 필요한 정보를 연산하는데 부하를 줄이도록 도와주는 방법을 소개할 것이다.
이 예는 다섯 번 째 예제에서도 사용된다.

* The fifth example is an extension of the fourth. It displays even more information 
about each time zone, such as the time and relative day in that time zone. 
Its shows how you can create a custom table view cell that contains a custom view 
that draws its content in -drawRect:.

다섯 번 째 예제는 네 번 째 예제의 확장이다. 이 예제는 각각의 time zone에 대해 시간이나 해당 time zone내의
상대적인 시간과 같은 보다 많은 정보를 화면에 출력한다. 
이 예제는 -drawRect:함수를 통해 내용 데이터를 그리는 커스텀 뷰를 포함하는 커스텀 테이블 뷰 셀을 생성하는 방법을
보여준다.



================================================================================
BUILD REQUIREMENTS:

Mac OS X 10.5.7, Xcode 3.2, iPhone OS 3.0

================================================================================
RUNTIME REQUIREMENTS:

Mac OS X 10.5.7, iPhone OS 3.0

================================================================================
PACKAGING LIST:


1_SimpleTableView
-----------------
1_SimpleTableView/Classes/RootViewController.{h,m}
View controller that sets up the table view and serves as the table view's data source and delegate.

테이블 뷰를 설정하고 테이블 뷰의 데이터와 위임을 제공하는 뷰 컨트롤러

1_SimpleTableView/Classes/SimpleTableViewAppDelegate.{h,m}
Application delegate that configures the view controller.

뷰 컨트롤러를 설정하는 애플리케이션의 delegate 클래스

1_SimpleTableView/MainWindow.xib
The xib file containing the application's main window.

애플리케이션의 메인 윈도우를 포함하는 xib 파일

1_SimpleTableView/en.lproj/Localizable.strings
Strings file containing localization dictionary.

지역화 사전을 포함하는 문자열들의 파일



2_SimpleSectionedTableView
--------------------------
2_SimpleSectionedTableView/Classes/RootViewController.{h,m}
View controller that serves as the table view's data source and delegate. It also set up the data.

테이블 뷰의 데이터와 위임을 제공하는 뷰 컨트롤러로 데이터 설정도 수행함

2_SimpleSectionedTableView/Classes/SimpleSectionedTableViewAppDelegate.{h,m}
Application delegate that configures the view controller.

뷰 컨트롤러를 설정하는 애플리케이션의 delegate 클래스

2_SimpleSectionedTableView/Classes/Region.{h,m}
Object to represent a region containing the corresponding time zone wrappers.

time zone wrappers에 해당하는 지역 정보를 함께 보여주는 객체

2_SimpleSectionedTableView/Classes/TimeZoneWrapper.{h,m}
Object to represent a time zone, caching various derived properties that are expensive to compute.

time zone을 표현하는 객체로 연산하기 까다로운 다양한 파생 속성들을 저장한다.

2_SimpleSectionedTableView/MainWindow.xib
The xib file containing the application's main window.

애플리케이션의 메인 윈도우를 포함하는 xib 파일

2_SimpleSectionedTableView/en.lproj/Localizable.strings
Strings file containing localization dictionary.

지역화 사전을 포함하는 문자열들의 파일


3_SimpleIndexedTableView
------------------------
3_SimpleIndexedTableView/Classes/RootViewController.{h,m}
View controller that serves as the table view's data source and delegate. 
It uses the current UILocalizedIndexedCollation object to organize 
the time zones into appropriate sections, and also to provide information 
about section titles and section index titles.

테이블 뷰의 데이터와 위임을 제공하는 뷰 컨트롤러.
time zone들을 적절한 섹션에 정리하기 위해 UILocalizedIndexedCollation 객체를 사용하며
영역 제목과 인덱스 제목에 관련된 정보들 또한 제공한다.


3_SimpleIndexedTableView/Classes/SimpleIndexedTableViewAppDelegate..{h,m}
Application delegate that configures the view controller.

뷰 컨트롤러를 설정하는 애플리케이션의 delegate 클래스

3_SimpleIndexedTableView/Classes/TimeZoneWrapper.{h,m}
Object to represent a time zone, caching various derived properties that are expensive to compute.

time zone을 표현하는 객체로 연산하기 까다로운 다양한 파생 속성들을 저장한다.

3_SimpleIndexedTableView/MainWindow.xib
The xib file containing the application's main window.

애플리케이션의 메인 윈도우를 포함하는 xib 파일

3_SimpleIndexedTableView/en.lproj/Localizable.strings
Strings file containing localization dictionary.

지역화 사전을 포함하는 문자열들의 파일


4_TableViewCellSubviews
-----------------------
4_TableViewCellSubviews/Classes/TableViewCellSubviewsAppDelegate.{h,m}
Application delegate that sets up the navigation controller and the root view controller.

네비게이션 컨트롤러와 root 뷰 컨트롤러를 설정하는 애플리케이션의 delegate

4_TableViewCellSubviews/Classes/RootViewController.{h,m}
View controller that sets up the table view and the time zone data.

테이블 뷰와 time zone 데이터를 설정하는 뷰 컨트롤러

4_TableViewCellSubviews/Classes/Region.{h,m}
Object to represent a region containing the corresponding time zone wrappers.

time zone wrappers에 해당하는 지역 정보를 함께 보여주는 객체

4_TableViewCellSubviews/Classes/TimeZoneWrapper.{h,m}
Object to represent a time zone, caching various derived properties that are expensive to compute.

time zone을 표현하는 객체로 연산하기 까다로운 다양한 파생 속성들을 저장한다.

4_TableViewCellSubviews/MainWindow.xib
The xib file containing the application's main window.

애플리케이션의 메인 윈도우를 포함하는 xib 파일

4_TableViewCellSubviews/en.lproj/Localizable.strings
Strings file containing localization dictionary.

지역화 사전을 포함하는 문자열들의 파일


5_CustomTableViewCell
---------------------
5_CustomTableViewCell/Classes/CustomTableViewCellAppDelegate.{h,m}
Application delegate that sets up the navigation controller and the root view controller.

네비게이션 컨트롤러와 root 뷰 컨트롤러를 설정하는 애플리케이션의 delegate

5_CustomTableViewCell/Classes/RootViewController.{h,m}
View controller that sets up the table view and the time zone data.

테이블 뷰와 time zone 데이터를 설정하는 뷰 컨트롤러

5_CustomTableViewCell/Classes/Region.{h,m}
Object to represent a region containing the corresponding time zone wrappers.

time zone wrappers에 해당하는 지역 정보를 함께 보여주는 객체

5_CustomTableViewCell/Classes/TimeZoneWrapper.{h,m}
Object to represent a time zone, caching various derived properties that are expensive to compute.

time zone을 표현하는 객체로 연산하기 까다로운 다양한 파생 속성들을 저장한다.

5_CustomTableViewCell/Classes/TimeZoneCell.{h,m}
A table view cell to display various pieces of information about a time zone.. 

time zone과 관련된 다양한 정보 조각들을 화면에 출력하기 위한 테이블 뷰 셀

5_CustomTableViewCell/Classes/TimeZoneView.{h,m}
A view to display various pieces of information about a time zone.

time zone과 관련된 다양한 정보를 화면에 출력하기 위한 뷰

5_CustomTableViewCell/MainWindow.xib
The xib file containing the application's main window.

애플리케이션의 메인 윈도우를 포함하는 xib 파일

5_CustomTableViewCell/en.lproj/Localizable.strings
Strings file containing localization dictionary.

지역화 사전을 포함하는 문자열들의 파일


================================================================================
CHANGES FROM PREVIOUS VERSIONS:

Version 2.0
- Corrected a memory leak in the displayMethod  in CustomTableViewCellAppDelegate.m.

Version 2.0
- Updated for and tested with iPhone OS 3.0.
- Adopted new UITableViewCell API where appropriate.
- SimpleIndexedTableView uses UILocalizedIndexedCollation.
- Application data created by the application delegate but passed to the first view controller.


Version 1.8
- Updated for and tested with iPhone OS 2.0. First public release.
- Modified fourth and fifth examples to make timer-based updates more efficient.

Version 1.7
- Modified fourth and added fifth example.

Version 1.6
- Updated the Default.png image.
- Added LSRequiresIPhoneOS flag to Info.plist files.

Version 1.5
- Updated for Beta 5.
- Added localized strings files.
- Made minor changes to project file -- added ReadMe, removed project-level override for 
ALWAYS_SEARCH_USER_PATHS, added override at target level.
- Removed Visible At Launch flag from window in MainWindow.xib; 
added [window makeKeyAndVisible] in application delegate.

Version 1.4
- Updated for Beta 4.
- Adopts the new pattern in the Cocoa Touch List project template.
- The application delegate serves as the controller for the application's data; 
the table view controllers retrieve data from the application delegate.
- Minor changes to artwork.

Version 1.3
- Updated for Beta 3.
- The samples now use nib files and UITableViewController; they also adopt the new pattern for table cell reuse.

================================================================================
Copyright (C) 2008 Apple Inc. All rights reserved.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^