0

ボタン付きのカスタムセルを使用しています。編集モードでは、ボタンを非表示にする必要があります。ステータスの変更を編集するときに、このメソッドを呼び出します。

-(void)setButtonsVisibility:(BOOL)visibility {
    UIButton *currButton;
    for (int i = 0; i <= [array count] - 1; i++) {
        currButton = (UIButton *)[_tableView viewWithTag:10000+i];
        if (currButton) {
            [currButton setAlpha:visibility];
        }
    }
}

それはうまくいきます。ただし、この方法は、現在表示されていないセルには機能しません。たとえば、テーブルに 10 個を超えるセルがある場合。

4

1 に答える 1

0

セルを適切に再利用している場合、メモリに存在する唯一の UITableViewCells は、表示される 10 になります。

最も簡単な解決策は、ボタンを表示するか非表示にするかを示すBOOLフラグをインスタンスに追加することです。UITableViewDataSource次に、表示されている ~10 が既存のメソッドによって適切に更新され、tableView:cellForRowAtIndexPath:スクロール後に呼び出される で、ボタンの alpha プロパティをフラグの値に設定できます。

于 2012-08-24T17:20:14.383 に答える