私は3つの項目を持つテーブルビューを持っていますが、そのうちの1つはボタンの背後にあります。ボタンが選択されているとき、そのボタンを隠してその背後にあるアイテムを明らかにする。私はテーブルビューのセルを使用してテーブルの行を表示しています。隠す1つのボタンを選択すると、テーブルをスクロールすると、さらに多くのボタンが隠されます。ボタンの非表示は、現在のビューの表示可能な行内のある場所に基づいてボタンを隠すように見えます。特定の行のボタンを非表示にしようとしています。テーブルビューの行のボタンに何らかのインデックスを付けることはできますか?
ボタンを隠すコードを押すたびにNSLogに書き込むことができます。一度しか表示されませんが、テーブルをスクロールすると、ボタンの隠し属性が表示される他の行に適用されます。行53のボタンを選択すると、行53のボタンだけが非表示になり、120行テーブルの他の行のボタンは非表示になります。
誰も私がやろうとしていることは何ですか?私は何が起こっているのか理解するために何か助けていただければ幸いです。ありがとう。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *ElementCellIdentifier = @"ElementCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ElementCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ElementRowCell"
owner:self options:nil];
if ([nib count] > 0) {
cell = self.tvCell;
} else {
NSLog(@"failed to load ElementRowCell nib file!");
}
}
NSUInteger row = [indexPath row];
UILabel *atomic_number = (UILabel *)[cell.contentView viewWithTag:1];
atomic_number.text = [NSString stringWithFormat:@"%d",elements_table[row].atomic_number];
UILabel *element_name = (UILabel *)[cell.contentView viewWithTag:2];
element_name.text = [NSString stringWithCString:elements_table[row].element_name];
UILabel *element_symbol = (UILabel *)[cell.contentView viewWithTag:3];
element_symbol.text = [NSString stringWithCString:elements_table[row].element_symbol];
return cell;
}
- (IBAction)buttonPressed:(id)sender {
NSLog(@"Getting to buttonPressed from row button");
UIButton *pressedButton = (UIButton *)sender;
NSIndexPath *indexPath = [self.mainTableView indexPathForCell: (UITableViewCell *)[sender superview]];
pressedButton.hidden = TRUE;
}
ないのはなぜあなたがこのような結果を得ていることを確認:if文そうのように、ボタンの非表示のプロパティを設定する
今tableView:cellForRowAtIndexPath:
利用ANにスクロールしたとき、適切な状態を復元するために。 'tableView:cellForRowAtIndexPath:'とボタンを隠すアクションメソッドを投稿してください。 – NJones
私はこのフォーラムを初めて使いました。私はこのコメントフィールドの許容文字数を超えています。コードを投稿するにはどうしたらいいですか? – Rick
質問を編集してコードを追加しました。あなたの質問のテキストのすぐ下に質問タグがあります。そのすぐ下に、編集リンクをクリックしてください。 – NJones