tableView의 순서를 반대로 할 수 있습니까? 나는 해결책을 많이 찾았지만 모든 결과는 내가 달성하려는 것에 대한 해결책이 아닙니다. 그들은 모두 테이블의 마지막 위치로 스크롤 scrollToRowAtIndexPath
하고 데이터를 반대로 채우는 것을 제안 합니다. 그러나 표 내용이 동적이고 경우에 따라 모든 셀에 데이터가없는 경우에는 작동하지 않습니다. 예를 들어 일반 tableView에서 순서는 다음과 같습니다.
스크롤 방향
v
V
원하는 결과는 다음과 같습니다.
스크롤 방향
^
^
이 예제에서 제안 된 방법을 scrollToRowAtIndexPath
사용하고 객체 배열의 길이를 사용하면 맨 위에서 세 번째 셀만 가져옵니다. 그리고 다음과 같이 끝납니다.
원치 않는 결과 :
스크롤 방향
v
V
어떤 도움을 주시면 감사하겠습니다.
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] 삭제
몇 마디 만하겠습니다