我有一個有很多行的UITableView。 它就像一個手風琴:http://docs.jquery.com/UI/Accordion 主細胞有子細胞,子細胞也有子細胞。所以這是一個三級的tableView。UITableView,如何捕捉動畫結束?
那麼,當用戶選擇一個單元格時,它會用行動畫擴展(或摺疊)子單元格。 但我需要設置tableView和scrollView的新大小。
我做的所有的東西在這個方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
問題: 當用戶點擊一個單元格,然後迅速點擊一個子一個,第二個動畫不這樣做,那麼的子單元等級2未被顯示。但是尺寸已經確定(考慮到二級子單元已經顯示)。
其實我玩的時間來處理這個......但它真的很爛。
這裏是我的代碼示例:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Checking with times (with 0,5 second interval in order to be sure that the previous animation is finished !)
// Setting tableView & scollView heights
[tableView beginUpdates];
if(position.isExpanded == YES)
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationBottom];
else
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationTop];
[tableView endUpdates];
}
所以,我想抓住這個動畫的結尾。 或者,玩一種信號量(但我只有一個過程...) 任何想法來解決這個問題?
請記住,在我的回覆中,我真的是iPhone開發新手。
謝謝。
重複的:http://stackoverflow.com/questions/7198633/how-can-i-tell-when-a-uitableview-animation-has-finished。那麼,也許這是一個重複的,但它有一個工作答案的好處。 – fishinear 2013-07-29 16:28:44
重複和答案是非常糟糕的。任何人都會遇到這個問題shoudl看看[UITableView動畫回調](http://stackoverflow.com/questions/2802146/callback-for-uitableview-animations)和[UITableView行動畫持續時間和完成回調](http:/ /stackoverflow.com/questions/3832474/uitableview-row-animation-duration-and-completion-callback) – River2202 2015-10-25 13:42:37