我有一個UITableView,我通過UIView動畫塊增加其寬度。自定義的UITableViewCell寬度調整在tableview reloadData
[UIView animateWithDuration:.5
animations:^{
CGRect frame = myTableView.frame;
frame.size.height += 190;
myTableViewView.frame = frame;
[[myTableViewView visibleCells] makeObjectsPerformSelector:@selector(setNeedsDisplay)];
}
completion:nil];
一旦通話結束我的子類UITableViewCells重繪,並調用該委託方法。
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
CGRect frame = cell.frame;
frame.size.width = tableView.frame.size.height;
cell.frame = frame;
}
沒有這個,我的UITableViewCells沒有繪製到UITableView的全部寬度。我遇到的問題是當我調用[tableView reloadData]。刷新數據調用上述willDisplayCell調用設置正確的框架,但是當我觀看的UITableViewCell SETFRAME堆棧跟蹤:另一個呼叫正在調用我所有的細胞從一個私人的UITableView電話:
-[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:]
此電話爲將我所有可見的UITableViewCells的框架設置爲UITableView的原始寬度和較小寬度。有沒有人有任何想法如何保持這種情況發生,使我的細胞保持表視圖的寬度?
嗨, 這裏在UIView動畫塊,你只是增加高度而不是寬度,如果你想增加這兩個適用於這裏。 –