-1

私は uitableview を持っていて、その上に imageView を持つカスタムセルを持っています。imageView には既に画像が取り込まれていますが、その.hiddenプロパティは に設定されていYESます。つまり、tableView が存在する場合、すべてのセル イメージが非表示になります。アプリでは、画像のオン/オフを設定できます。これはほんの少しの情報です。私の問題は、tableViewCells をループして、非表示の画像があるかどうかを確認する必要があることです。

で、cellForRowAtIndexPath:セルをループしようとします。

    BOOL cellImageViewsAreHidden = YES;

for (UITableViewCell *myCell in tableView.visibleCells) {

    if (self.cell.alert.hidden == NO) {

        cellImageViewsAreHidden = NO;

        break;
    }
    else{
        cellImageViewsAreHidden = YES;
    }
}

if (cellImageViewsAreHidden == NO) {
    NSLog(@"They are visible");
}

else{
    NSLog(@"they are hidden");
}

しかし、残念ながらこれだけNSLogs "they are hidden"です。NSLog画像が表示されていても、正しいテキストにはなりません。どんな助けや提案も大歓迎です!

4

2 に答える 2

1

置き換えてクラスのプロパティであるセルだけでなく、実際にループ内のセルをチェックします

if (self.cell.alert.hidden == NO) {

if (myCell.alert.hidden == NO) {

とにかく、正しい方法は、imageView の状態をデータ モデルに格納することです。セルを再利用する必要があるため、とにかくそこに必要です

于 2013-01-07T05:48:28.477 に答える
-1

テーブルセルのカスタムオブジェクトを作成して、そのステータスを保持しないでください。つまり、テーブル セルの詳細を含むカスタム オブジェクトを作成し、ブール値を作成して、画像が表示されたかどうかに関係なくステータスを保持します。

ユーザーがアプリにオフの画像を持っていると仮定します。次に、プロパティを false に設定します。そうでない場合。テーブルビューのプロパティをいじる必要はありません。あなたはもっとコントロールできるようになります。

于 2013-01-07T03:52:00.003 に答える