2009-10-27 2 views
4

세로 및 가로로 스크롤하고 끈적 끈적한 행과 열 헤더가있는 데이터 그리드를 만들려고합니다 (행/열 머리글을 계속 보면서 데이터를 스크롤 할 수 있도록). 이 일을하는 가장 좋은 방법은 무엇입니까?iPhone : 맞춤 DataGrid보기, 하위 클래스 UITableView 또는 기타?

고유 한 렌더링을 처리하는 내 자신의 사용자 지정 DataGrid보기를 만드는 것을 고려해 봤지만 이것은 많은 작업처럼 보입니다. UIScrollView에 여러 개의 UITableViews를 추가하는 것이 효과적 일지 모르지만 첫 번째 행과 열을 나머지 부분을 함께 스크롤하면서 고정하는 방법을 모르겠습니다. 또는 아마도 UITableView 하위 수 및 열을 추가 할 수 있습니다.

내가 찾고있는 것과 비슷한 예를 보려면 http://www.roambi.com/을 참조하십시오. SuperList 예제를 클릭하고 거기서보기와 함께 놀아 라.

일반 HTML 테이블, 사용자 정의 JavaScript 및 CSS로 UIWebView에서 찾고자하는 효과를 성공적으로 다시 만들었지 만 iPhone에서의 성능은이 방법을 사용하면 끔찍합니다.

+0

내가 믿는 것은 당신이 찾고있는 것이 무엇인지에 대한 기초를 다룬다. 나는 끈적 끈적한 행 헤더를 가지고 있지는 않지만 열 머리글은 그들이 있어야하는 곳에 머물러 있으며 대부분의 렌더링이 잘 작동합니다. 내가 필요한 경우 각 행의 첫 번째 셀을 수정하여 동일한 장소에 머물러있게하는 것이 너무 많이 필요하다고 생각하지 않습니다. https://github.com/AlanSamet/ASDataGridView –

답변

3

UITableView를 서브 클래 싱하는 것이 요구 사항에 잘 맞다고 생각하지 않습니다. 그러나 UITableView가 사용하는 디자인 패턴을 복제 할 수 있습니다. 이렇게하면보기의 개발과 사용이 간단 해집니다.

나는이 라인을 따라 가겠어요 :

  • 가 jQuery과 대응을 모방 DataGridViewDelegate 및 DataGridViewDatasource 프로토콜을 선언합니다.
  • DataGridView는 UIScrollView 하위 클래스입니다. 그것에는 2 개의 ivars delegatedatasource가있다.
  • DataGridViewCell은 UITableViewCell과 유사한 UIView 하위 클래스입니다.
  • 인덱스 경로를 사용하여 행, 열 및 (원하는 경우 구현하려는 경우) 섹션을 쉽게 사용할 수 있도록 NSIndexPath의 범주가 NSIndexPath(UITableView)입니다.
  • DataGridView에 통화 데이터 소스 방법 numberOfRowsInDataGridView:numberOfColsInDataGridView: 및 위임 방법 heightForCellAtIndexPath:widthForCellAtIndexPath: 격자의 사이즈를 계산하고, 스크롤보기 contentSize 속성을 설정하는 (또는, 구현되지 않은 경우, 디폴트 cellWidthcellHeight 속성을 사용하여).
  • DataGridView가 자신을 표시해야하거나 스크롤 할 때 데이터 소스 메서드 dataGridView:cellAtIndexPath:을 호출하여 표시 할 각 셀의 하위보기를 가져옵니다. 이것을 하위보기로 추가하십시오. UITableView와 같은 셀 재사용 시스템을 구현하십시오.
  • ...

이 많은 일처럼 들릴 수도 있지만, 나는 그것이 가능하다고 생각합니다. 고정 된 (비 스크롤링) 헤더 행/cols를 가장 잘 구현하는 방법을 잘 모르겠습니다.