@7KV7は私に考えさせました。お気に入りの写真や二度と見たくない写真をマークするために使用したいお気に入りのボタンと無視するボタンがあります。私は彼のメソッドを使用してボタンを初期化し、次に彼のメソッドを少し変更してボタンのオンとオフを切り替えました。
この例では、写真をお気に入りとしてマークする場合、無視ボタンをオフにします。その逆も同様です。デリゲートはデータベースのものを処理します。
self.favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.ignoreButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.favoriteButton setImage:[UIImage imageNamed:@"Favorite-Selected"]
forState:UIControlStateSelected];
[self.favoriteButton setImage:[UIImage imageNamed:@"Favorite"]
forState:UIControlStateNormal];
[self.ignoreButton setImage:[UIImage imageNamed:@"Ignore-Selected"]
forState:UIControlStateSelected];
[self.ignoreButton setImage:[UIImage imageNamed:@"Ignore"]
forState:UIControlStateNormal];
ボタンのオンとオフを切り替えるだけの場合は、buttonPressed送信者がどのボタンが押されたかを認識しているため、プロパティにする必要はありません。反対側のボタンにハイライトをオフにするように指示する必要があるため、これらをプロパティにする必要があります。
- (void)favoriteIgnore:(UIButton *)buttonPressed {
// Toggle the tapped button
buttonPressed.selected = ( buttonPressed.selected) ? NO : YES;
id <ScoringToolbarDelegate> TB_delegate = _delegate;
// Turn off the other button and call the delegate
if ([buttonPressed.currentTitle isEqualToString:@"favorite"]) {
self.ignoreButton.selected = NO;
[TB_delegate favoriteButtonPressed];
} else {
self.favoriteButton.selected = NO;
[TB_delegate ignoreButtonPressed];
}
}