2 つのテーブルビューのコンテナーとして機能する UIView があります。これらのテーブルビューにデータをロードする方法を制御する 2 つのボタンがあります。基本的に、1 つのボタンがタップされると、uiview がスライドしてそのボタンに関連するテーブルビューが表示され、他のボタンがタップされると、次のことが必要になります。
- 近い
- 最初のテーブルビューを隠す
- 次に、2番目のテーブルビューを再表示します
- その後、uiview がスライドして戻ります
これが私が持っているものです
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:0.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
if(!isTableOpen){
[self.fighterTableView setHidden:YES];
[self.matchTableView setHidden:NO];
isTableOpen = YES;
viewTableContainer.frame = CGRectMake(0, 0, 352, 700);
[self.view bringSubviewToFront:viewTableContainer];
[UIView commitAnimations];
}else{
//isTableOpen = NO;
viewTableContainer.frame = CGRectMake(-352, 0, 352, 700);
[UIView commitAnimations];
[self.fighterTableView setHidden:YES];
[self.matchTableView setHidden:NO];
viewTableContainer.frame = CGRectMake(0, 0, 352, 700);
[UIView commitAnimations];
}
ここでの問題は、else ステートメントの commitanimations にあります。非表示のプロパティを設定してから、uiview を再度ポップアウトしようとしています。何が起こっているかというと、テーブルビューを非表示にしたり再表示したりするだけですが、アニメーションは決して起こりません。遅延を使用する必要があるように感じますが、これを処理するより適切な方法がない限り、どうすればよいでしょうか??
考え?