UITableView를 아래쪽에서 위로 채우는 방법은 무엇입니까?

카이 테일러

tableView의 순서를 반대로 할 수 있습니까? 나는 해결책을 많이 찾았지만 모든 결과는 내가 달성하려는 것에 대한 해결책이 아닙니다. 그들은 모두 테이블의 마지막 위치로 스크롤 scrollToRowAtIndexPath하고 데이터를 반대로 채우는 것을 제안 합니다. 그러나 표 내용이 동적이고 경우에 따라 모든 셀에 데이터가없는 경우에는 작동하지 않습니다. 예를 들어 일반 tableView에서 순서는 다음과 같습니다.


라벨 1

라벨 2

라벨 3

스크롤 방향
v
V


원하는 결과는 다음과 같습니다.
스크롤 방향
^
^

라벨 3

라벨 2

라벨 1


이 예제에서 제안 된 방법을 scrollToRowAtIndexPath사용하고 객체 배열의 길이를 사용하면 맨 위에서 세 번째 셀만 가져옵니다. 그리고 다음과 같이 끝납니다.


원치 않는 결과 :

라벨 3

라벨 2

라벨 1

스크롤 방향
v
V


어떤 도움을 주시면 감사하겠습니다.

KlimczakM

UITableView 맨 아래에서 채우려면 다음 을 수행하십시오 .

- (void)updateTableContentInset {
    NSInteger numRows = [self.tableView numberOfRowsInSection:0];
    CGFloat contentInsetTop = self.tableView.bounds.size.height;
    for (NSInteger i = 0; i < numRows; i++) {
        contentInsetTop -= [self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForItem:i inSection:0]];
        if (contentInsetTop <= 0) {
            contentInsetTop = 0;
            break;
        }
    }
    self.tableView.contentInset = UIEdgeInsetsMake(contentInsetTop, 0, 0, 0);
}

요소 순서를 반대로하려면 :

dataSourceArray = dataSourceArray.reverseObjectEnumerator.allObjects;

Swift 4.2 / 5 버전 :

func updateTableContentInset() {
    let numRows = self.tableView.numberOfRows(inSection: 0)
    var contentInsetTop = self.tableView.bounds.size.height
    for i in 0..<numRows {
        let rowRect = self.tableView.rectForRow(at: IndexPath(item: i, section: 0))
        contentInsetTop -= rowRect.size.height
        if contentInsetTop <= 0 {
            contentInsetTop = 0
            break
        }
    }
    self.tableView.contentInset = UIEdgeInsets(top: contentInsetTop,left: 0,bottom: 0,right: 0)
}

Swift 3 / 4.0 버전 :

self.tableView.contentInset = UIEdgeInsetsMake(contentInsetTop, 0, 0, 0)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Famo.us scrollview를 아래에서 위로 (또는 오른쪽에서 왼쪽으로) 채우는 방법은 무엇입니까?

NSArray에서 UITableView를 채우는 방법은 무엇입니까?

GridLayout을 위에서 아래로 채우고 왼쪽에서 오른쪽으로 채우는 방법은 무엇입니까?

UIViewcontroller에서 팝 오버로 UItableview에 데이터를 채우는 방법은 무엇입니까?

ViewController를 아래에서 위로 전환하는 방법은 무엇입니까?

부모를 채우기 위해 확장하는 동안 img를 아래쪽에 고정하는 방법은 무엇입니까?

d3 js v4 막대 차트를 아래쪽 (x 축)에서 위쪽으로 애니메이션하는 방법은 무엇입니까?

자바 스크립트를 사용하여 픽셀에서 왼쪽 / 오른쪽 / 위쪽 / 아래쪽 속성 값을 얻는 방법은 무엇입니까?

Jetpack Compose에서 텍스트를 위쪽, 아래쪽 및 가운데에 수직으로 정렬하는 방법은 무엇입니까?

JS 객체에서 SELECT를 OPTIONS로 채우는 방법은 무엇입니까?

API 호출로 Android에서 AutoCompleteTextView를 채우는 방법은 무엇입니까?

MVP 프로젝트에서 DataGridView를 채우는 방법은 무엇입니까?

숫자 목록에서 여러 TextView를 무작위로 채우는 방법은 무엇입니까?

3 개 div를 서로 나란히 정렬하여 아래쪽 및 위쪽 div 사이에 있도록하는 방법은 무엇입니까?

C # Winforms-DataGridView의 0,0 인덱스를 왼쪽 위에서 왼쪽 아래로 변경하는 방법은 무엇입니까?

Samsung Gear vr에서 터치 패드를 위, 아래, 왼쪽 및 오른쪽으로 터치하는 방법은 무엇입니까?

UITableView에 채우기 위해 JSON 데이터를 비동기 적으로 가져 오는 동안 UIActivityIndicatorView를 표시하는 방법은 무엇입니까?

전체 ImageView를 아이콘으로 채우는 방법은 무엇입니까?

RTF 문서를 동적으로 채우는 방법은 무엇입니까?

파이썬에서 특정 위치 인수를 부분적으로 채우는 방법은 무엇입니까?

Phaser js 게임에서 플레이어가 경계를 위아래가 아닌 왼쪽으로 제한하는 방법은 무엇입니까?

Unite Gallery 크기 조정에서 그리드 위치를 오른쪽에서 아래로 변경하는 방법은 무엇입니까?

줄리아에서 for 루프의 결과로 벡터를 채우는 방법은 무엇입니까?

Arraylist에서 AlertDialog를 채우는 방법은 무엇입니까?

DataGrid에서 DropDownList를 채우는 방법은 무엇입니까?

ArrayList에서 JComboBox를 채우는 방법은 무엇입니까?

laravel에서 @empty를 채우는 방법은 무엇입니까?

RecyclerView를 AppWidgetHostViews로 채우는 방법은 무엇입니까?

Spring에서 통합 테스트를 위해 프로그래밍 방식으로 테스트 데이터를 채우는 방법은 무엇입니까?