2012-02-13 12 views
1

ちょっと、自分のアプリ内でお気に入りを処理する機能を作成しています。また、お気に入りのボタンの画像を変更しています。インスタンスに送信されたセレクタが認識されないUIButtonの背景を変更するとき

以下のコードが動作しますHOWEVER「0」というタグが付いた最初のボタンを好きにしたいときに、次のようなエラーが発生します。 (残りの仕事)。

は - [UIScrollViewのsetBackgroundImage:forState:]:認識されていないセレクタはイメージが、それが右にずれボタンのタイトルを押して変更しますと、私はフレームをリセットする必要があります。また、インスタンスに0x14e3b0

を送りました私は州の背景を変更するとき?あなたはそれにUIButton方法のいずれかを呼び出すことができます前に、UIButtonに送信者をキャストする必要があり

-(void)favButtons:(id)sender { 

int i = [sender tag]; 
NSString *fav = [NSString stringWithFormat:@"%i", i]; 

    if ([[Favinsults objectForKey:fav] isEqualToString:@"0"]){ 

    [sender setImage:[UIImage imageNamed:@"favButton1.png"] forState:UIControlStateNormal]; 

    UIButton* button = (UIButton *)[DoubleScrollLeft viewWithTag:i]; 
    [button setBackgroundImage:[UIImage imageNamed:@"buttonD1.png"] forState:UIControlStateNormal]; 

    } else { 

    [sender setImage:[UIImage imageNamed:@"favButton0.png"] forState:UIControlStateNormal]; 

    UIButton* button = (UIButton *)[DoubleScrollLeft viewWithTag:i]; 
    [button setBackgroundImage:[UIImage imageNamed:@"buttonD0.png"] forState:UIControlStateNormal]; 

    } 
} 

答えて

2

UIScrollviewIBAction方法に接続されて誤接続があるようです。 IB接続を注意深く確認してください。

+0

なぜ、送信者タグが0の場合にのみ起こりますか? – Wez

+0

デフォルトのタグ値は0です。送信者が期待どおりでない場合、それは別のクラスです。接続に問題があります。 – zaph

+0

しかし、すべての送信者タグを1つオフセットすると、すべて正常に動作します。 – Wez

0

...

UIButton * newbutton = (UIButton*)sender; 
[newbutton setImage:[UIImage imageNamed:@"favButton1.png"] forState:UIControlStateNormal]; 

など

[UIScrollView setBackgroundImage:forState:] 

は、あなたの送信者を意味し、 UIScrollView型(UIButtonではなく)であると解釈され、setBackgroundImage:forState:メソッドがUIScrollViewで定義されていません。

+0

私は2番目のUIScrollView内のボタンの背景イメージを変更するために '[DoubleScrollLeft viewWithTag:i]'と一緒にこれをどのように使用するかを表示できますか? – Wez

2

送信者は何とかUIScrollviewです。

この行を次のように変更してください。警告メッセージが表示されないようにしてください。

[sender setImage:[UIImage imageNamed:@"favButton1.png"] forState:UIControlStateNormal]; 

[((UIButton *)sender) setImage:[UIImage imageNamed:@"favButton1.png"] forState:UIControlStateNormal]; 
+0

ありがとうございますが、これはうまくいきません、私はUIScrollビューの混乱はここで起こっている> 'UIButton * button =(UIButton *)[DoubleScrollLeft viewWithTag:i];' – Wez

関連する問題