[ios] UITableView 대신 UICollectionView를 사용하는 경우

iOS6 UICollectionViewUITableView도입 된의 업그레이드 된 버전과 비슷 하다는 것을 알았지 만 UICollectionView대신 언제 선택해야 UITableView합니까?

여전히 앱을 사용 UITableView하고 UICollectionView있습니다. 무엇이든 UITableView할 수 있다면 사람들이 여전히 사용하는 이유 는 무엇 UITableView입니까? 성능면에서 차이가 있습니까?

감사!



답변

그것은 요구 사항에 따라 다릅니다. 애플리케이션 흐름에 따라 애플리케이션에 통합 할 UI 유형이 결정됩니다.

사람들은 주로 UICollectionview그리드에 여러 이미지가 표시된 UI 유형을 만드는 데 사용합니다 . 이것은를 사용하는 복잡한 논리를 가지고 UITableView있지만을 사용 하면 UICollectionview쉽습니다.

를 사용할 때 UICollectionview선택한 항목 값을 가져 와서 태그 또는 기타 항목으로 버튼을 설정할 필요가 없습니다. 간단하게 다음 -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath과 같이 들어갈 수 있습니다 UITableViewDelegate.

`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`

항목 대신 선택한 행을 가져 오므로 그리드 또는 수정 된 항목을 만들 때 사용하는 UICollectionview것이 가장 좋습니다.

각 항목의 목록 세부 정보는 각 항목에 UITableView대한 자세한 정보를 보여주기 때문에 사람들이 사용 합니다.

Apple 문서 :

UICollectionView 클래스 참조

UICollectionView 클래스는 정렬 된 데이터 항목 모음을 관리하고 사용자 지정 가능한 레이아웃을 사용하여 표시합니다. 컬렉션보기는 단일 열 레이아웃 이상을 지원할 수 있다는 점을 제외하면 테이블보기와 동일한 일반 기능을 제공합니다. 컬렉션보기는 다중 열 그리드, 바둑판 식 레이아웃, 원형 레이아웃 등을 구현하는 데 사용할 수있는 사용자 지정 가능한 레이아웃을 지원합니다. 원하는 경우 컬렉션보기의 레이아웃을 동적으로 변경할 수도 있습니다.

UITableView 클래스 참조

테이블보기는 단일 열에 항목 목록을 표시합니다. UITableView는 UITableView가 세로 스크롤 만 허용하지만 사용자가 테이블을 스크롤 할 수있는 UIScrollView의 하위 클래스입니다. 테이블의 개별 항목을 구성하는 셀은 UITableViewCell 개체입니다. UITableView는 이러한 개체를 사용하여 테이블의 보이는 행을 그립니다. 셀에는 콘텐츠 (제목 및 이미지)가 있으며 오른쪽 가장자리 근처에 액세서리보기가있을 수 있습니다. 표준 액세서리보기는 공개 표시기 또는 세부 공개 버튼입니다. 전자는 데이터 계층 구조의 다음 수준으로 이어지고 후자는 선택한 항목의 세부보기로 이어집니다. 액세서리보기는 스위치 및 슬라이더와 같은 프레임 워크 컨트롤이거나 사용자 지정보기 일 수도 있습니다. 테이블보기는 사용자가 테이블 행을 삽입, 삭제 및 재정렬 할 수있는 편집 모드로 들어갈 수 있습니다.


답변

내 기준은 다음과 같습니다.

  • UITableView가 할 수 있다면 그것을 사용하십시오

  • UITableView에 많은 코드가 필요하거나 전혀 할 수없는 경우 UICollectionView를 사용하십시오.

결정을 내리기 전에 UITableView에 대한 제한을 고려해야합니다. 단일 열입니다. 셀만 사용자 지정할 수 있지만 섹션 배경 등은 사용자 지정할 수 없습니다. 따라서 추가 요령이없는 간단한 목록이있는 경우 기본적으로 늪지 표준 iOS보기처럼 보이는 경우 UITableview를 사용합니다. 사용자 정의 삽입 또는 각 섹션 주위에 테두리가있는 경우 UICollectionView를 사용하십시오.

저는 실제로 모든 것에 대해 UICollectionView를 고려하고 있습니다. 뷰를 테이블 뷰로 개발하기 시작할 때 매우 비싸기 때문에 나중에 필요한 작업을 수행 할 수 없다는 것을 알게됩니다. 첫 손 경험;)

두 가지를 더 많이 경험 한 후에 편집하십시오. 마지막 단락은 무시하십시오. UICollectionView가 UITableView처럼 작동하도록하려면 많은 상용구 코드가 필요합니다. 정말 필요한 경우에만 UICollectionView를 사용하십시오. 😉


답변

간단한 목록 및 앞으로 / 뒤로 탐색을 위해 UITableView.

높은 수준의 사용자 정의 기능이 필요한 경우 UICollectionView.

일반적으로 소프트웨어 개발에서는 “가장 간단한 것”을 나타내는 접근 방식을 선택하는 것이 가장 좋습니다.

편집 : iOS 14부터 UICollectionView이제 목록도 할 수 있으며 이제 권장되는 접근 방식입니다. 자세한 정보 및 구현 세부 사항은 WWDC20의이 세션을 참조하십시오. https://developer.apple.com/videos/play/wwdc2020/10026/


답변

내 관점에 따르면 collectionView와 tableView의 주요 차이점은

TABLEVIEW-> 하나의 열에 만 항목 목록을 표시합니다.

COLLECTION-VIEW-> 여러 열에 항목 목록을 표시합니다.

도움이되기를 바랍니다.


답변

iPhone 용 UITableView를 선택하는 경우 먼저 iPad 전략을 고려했는지 확인하십시오. iPad 전용 레이아웃을 원하는 경우 단일 열 레이아웃을 격자로 만들 수 있습니다.


답변

필수는 아니지만 항상 collectionview를 사용합니다. 이렇게하면 서로 다른 해상도에 대해 내 컬렉션이 표시되는 방식을 쉽게 조정할 수 있습니다. 장점은 향후 리팩토링 할 때 새로운 유형의 셀을 빠르게 추가 할 준비가되어 있다는 것입니다.

나는 tableviews의 요점을 보지 않습니다. 컬렉션 뷰를 사용하여 테이블을 나타내는 것은 매우 간단합니다. IMO.


답변

데이터를 표시하는 방법에 전적으로 의존합니다. 위에서 언급했듯이 단일 데이터 세트 만 필요하고 너무 복잡하지 않은 경우 UITableViewelse를 사용하십시오 UICollectionView.

UICollectionView 사용자 정의 친화적입니다.

여러 셀 높이를 처리하는 경우 UICollectionView.