0
此行爲僅在iOS 7.0上,在7.0上它按預期工作。UITableView - 有時在7.1上展開單元格時滾動,而不是7.0
我有一個UITableView與不同高度的單元格。當其中一人拍打,它通過
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row != self.selectedCellIndexPath.row) {
// Close previously opened cell
if (self.selectedCellIndexPath != nil) {
[tableView beginUpdates];
[(MyTableViewCell *) [tableView cellForRowAtIndexPath:self.selectedCellIndexPath] collapse];
[tableView endUpdates];
}
self.selectedCellIndexPath = indexPath;
[tableView beginUpdates];
[(MyTableViewCell *) [tableView cellForRowAtIndexPath:indexPath] expand];
[tableView endUpdates];
}
else if (indexPath.row == self.selectedCellIndexPath.row) {
self.selectedCellIndexPath = nil;
[tableView beginUpdates];
[(MyTableViewCell *) [tableView cellForRowAtIndexPath:indexPath] collapse];
[tableView endUpdates];
}
}
擴展當在的tableView的頂部上連續敲擊,一切都表現爲預期 - 單元格向下擴展,電池的頂部停留在哪裏。但是當向下滾動並在桌面視圖的底部單擊更多單元格時,單元格會向下移動並展開。細胞越遠,情況越糟糕。
我計算表格單元格高度是這樣的:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
self.prototypeCell = [[MyTableCell alloc] initReuseIdentifier:CellIdentifier];
[self configureCell:self.prototypeCell forIndexPath:indexPath];
float height = 38;
if ([indexPath isEqual:self.selectedCellIndexPath]) {
height += [self.prototypeCell expandedHeight] + 5;
}
return height;
}
我惱火,如果我在頂部或在的tableView的底部在電池接頭的效果是不同的。而且,這種效果只是在向下滾動後第一次。按照預期,重複時,細胞停留在其位置。只有在上下滾動之後,它纔會在第一次出現錯誤。
幫助我,謝謝你能解釋理由,如果你知道 –