メソッド内にNSTimer遅延を挿入したいのですが、これを行う方法を考えていました。遅延タイマーを置きたいところを太字にしました。
これまでの私のコードは次のとおりです。
- (void) buttonPressed:(UIButton*) sender {
for(int i = 0;i < [categoryBtnImages count]; i++)
{
UIButton *but = (UIButton *)[catButtonArray objectAtIndex:i];
if(but != sender)
{
[but setImage:[UIImage imageNamed:[categoryBtnImages objectAtIndex:i]] forState:UIControlStateNormal];
// but.selected = !but.selected;
}
}
buttonCat = (UIButton *)sender;
int tagOfButton = buttonCat.tag - 2;
if (tagOfButton == -2 ){
tagOfButton = 8;
}
[buttonCat setImage:[UIImage imageNamed:[categoryBtnImagesSel objectAtIndex:tagOfButton]] forState:UIControlStateNormal];
ここに遅延を入れて、残りのコードを実行したいと思いますが、すべてこのメソッド内からです。
if ([sender.titleLabel.text isEqualToString:@"Button 0"]) {
[self foodCatSort:nil];
[self.tableView reloadData];
}
if ([sender.titleLabel.text isEqualToString:@"Button 1"]) {
[self healthCatSort:nil];
[self.tableView reloadData];
}
if ([sender.titleLabel.text isEqualToString:@"Button 2"]) {
[self shoppingCatSort:nil];
[self.tableView reloadData];
}
}
参考までに、これを実行したいのは、テーブルをリロードするボタンが押され、ボタンの状態の画像が変化するためです。最初にuibuttonイメージの変更を確認してから、テーブルをリロードしてください。私は遅れがこれを解決するだろうと思っていました。