我一直在尋找並找不到解決這個問題的辦法。我目前的代碼是基於Reload section without reloading section header。使用自動佈局擴展單元格時,UITableView跳轉。
我試圖在用戶按下單元格時生長一個uitableview單元格。我有一個UITableViewCell子類與UILabel最初限於兩行文本。當用戶按下UILabel時,我將UILabel中的numberOfLines屬性設置爲0,以便根據需要將其擴展爲儘可能多的行。
下面是從的tableView我的代碼:didSelectRowAtIndexPath方法:
if (((NSNumber *)expandedCells[indexPath.section]).boolValue)
{
labelExpandingCell.cellLabel.numberOfLines = 10;
} else
{
labelExpandingCell.cellLabel.numberOfLines = 3;
}
[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];
[self.tableView setNeedsDisplay];
[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];
有時候這工作得很好,通常當UITableView中的contentOffset.y == 0,通常情況下,實現代碼如下跳到向後100像素左右,當我執行這段代碼。以下是運行此代碼之前和之後的示例日誌。
2016年3月25日14:57:08.549 TableViewTest [485:129926]內容更新之前偏移:153.500000 2016年3月25日14:57:08.568 TableViewTest [485:129926]內容更新後,偏移量:136.500000
當我展開當前可見的單元格時,爲什麼autolayout會導致我的tableview向後跳躍?
我得到了一些與過去工作的代碼類似的東西。不知道什麼時候開始。可能iOS 9 sdk?當然不想回去手動設置細胞高度! –