2つのボタンから選択したボタンを取得します。iOS:いずれかのボタンが選択されている場合、すべてのボタンの背景画像を変更します。
は、これは私のシナリオです:私のViewController
で
、私は3種類の選択にユーザーがボタンから(1つだけ選択すること)しましょう。最初は、ボタンが1つしか表示されません。このボタンをタップすると、画像のようなものの下に2つの他のものが表示されます。唯一の違いは、選択したボタンを2回表示しないことです(写真の「返信」とは異なります)。
これら2つの最後のボタンが3のボタンがあるときBTN1がタップされた場合にのみ示され、そして隠されているビューである(のは3つのボタン、BTN1(選択)、BTN2とbtn3に名前を付けましょうもう一度タップ)。私はこれらのボタンでtype1、type2、type3の3種類を記述します。最初にbtn1が背景画像タイプ1ImageOn.png( "選択"を意味する "on")とbtn2 - > type2ImageOff.pngとbtn2 - > type3ImageOff.pngを持っているとします。ユーザが例えばbtn2を選択すると、btn1(選択)画像はtype1ImageOn.pngからtype2ImageOn.png、btn2 - > type1ImageOff.png、およびbtn3 - > type3ImageOff.pngに設定する必要があります。
私が選択されているどのような種類を知るために機能を作成しましたが、私はそれが動作を取得することはできません。
:-(void) checkSelectedFilterBtn:(UIButton *)sender {
UIButton *tmpFilter = sender;
UIImage* type1ImageOff = [UIImage imageNamed:@"type1ImageOff.png"];
UIImage* type2ImageOff = [UIImage imageNamed:@"type2ImageOff.png"];
UIImage* type3ImageOff = [UIImage imageNamed:@"type3ImageOff.png"];
UIImage* type1ImageOn = [UIImage imageNamed:@"type1ImageOn.png"];
UIImage* type2ImageOn = [UIImage imageNamed:@"type2ImageOn.png"];
UIImage* type3ImageOff = [UIImage imageNamed:@"type3ImageOn.png"];
if (tmpFilter.currentBackgroundImage == type1ImageOff)
{
self.selectedFilter = @"type1";
self.filterButton.imageView.image = type1ImageOn;
self.filterBtn2.imageView.image = type2ImageOff;
self.filterBtn3.imageView.image = type3ImageOff;
}
else if (tmpFilter.currentBackgroundImage == type2ImageOff) {
self.selectedFilter = @"type2";
self.filterButton.imageView.image = type2ImageOn;
self.filterBtn2.imageView.image = type1ImageOff;
self.filterBtn3.imageView.image = type3ImageOff;
} else {
self.selectedFilter = @"type3";
self.filterButton.imageView.image = type3ImageOn;
self.filterBtn2.imageView.image = type1ImageOff;
self.filterBtn3.imageView.image = type2ImageOff;
}
self.filterView.hidden = true;
}
私はこのようなBTN2のIBActionsとbtn3でこの関数を呼び出します
- (IBAction)filterBtn2TouchUp:(id)sender {
[self checkSelectedFilterBtn:sender];
}
- (IBAction)filterBtn3TouchUp:(id)sender {
[self checkSelectedFilterBtn:sender];
}
「UIButton」の背景画像を設定する方法についてはあなたが正しいですが、私はexamplのテストに問題があるようですe: 'tmpFilter.currentBackgroundImage == type1ImageOff'なぜなら、私が実行をデバッグするとき、常に最後の' else'に行くからです。イメージの名前は私のプロジェクトで持っているものと同じで、デバッグ時には値がゼロではない –
このように比較する必要があります([tmpFilter backgroundImageForState:UIControlStateNormal] == type1ImageOff) – Subramanian
私は同じ問題を抱えています –