2011-12-07 10 views
0

IBでカスタムUITableViewCellを作成しました。私はIBで追加したCheckMarkButtonというカスタムUIButtonを持っていて、 "unchecked.png"(チェックボックスのない空のボックス)の背景イメージを持っています。カスタムUIButtonの状態を変更する

私はテーブルビューでは、このセルを使用する場合は、cellForRowAtIndexPathで、私はボタンのターゲットを追加します。セレクタのためにその後

cell.CheckMarkButton addTarget:self [email protected](CheckmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

:予想通り

- (void)CheckmarkButtonPressed:(id)sender { 
    UIButton *theButton = (UIButton *)sender; 
    theButton.selected = !theButton.selected; 
    [theButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected]; 
} 

だから、この部分が動作します。今度は、セクションヘッダーから呼び出される別のメソッドがあります。ここでは、そのセクション内のすべてのTableView行をチェックまたはチェック解除します。私は、セルへのアクセスを取得した後、私はそれは、この文では

cell.CheckMarkButton.selected = YES; 

をチェックしていますことを示すために選択するボタンを設定しようと、私は私の細胞内のチェックマークアイコンの変更が表示されません。私は間違って何をしていますか?ありがとう。

答えて

0

有効なプロパティを設定するだけで、背景を変更しているわけではありません。

しかし、一般的に、これは間違っているだけです。ボタンが選択されたときに手動でイメージを変更するのではなく、Interface Builderの各状態ごとに異なるイメージを設定する必要があります。この方法では、ボタンを選択したときに画像が自動的に更新されます。

関連する問題