AQGridview は UITableView から多くのアイデアを借りているため、答えは両方に当てはまるはずです。
内部に次のオブジェクトを含むカスタム セルがあります。
- ラベル
- お気に入りのボタン (ユーザーがオン/オフを切り替えることができ、私は .selected = YES/NO を使用します)
問題は、スクロール時にボタンの状態を維持することです。以下は私の「cellForItemAtIndex」メソッドです。
- (AQGridViewCell *) gridView: (AQGridView *) aGridView cellForItemAtIndex: (NSUInteger) index
{
static NSString * cellIdentifier = @"CellIdentifier";
SampleGridViewCell * cell = (SampleGridViewCell *)[aGridView dequeueReusableCellWithIdentifier:cellIdentifier];
if ( cell == nil )
{
cell = [[SampleGridViewCell alloc] initWithFrame: CGRectMake(0.0, 0.0, 200, 60) reuseIdentifier: cellIdentifier];
}
NSDictionary *item = [self.items objectAtIndex:index];
NSString *title = [item objectForKey:@"title"];
cell.index = index;
cell.titleLabel.text = title;
//cell.favButton.selected = (logic goes here);
return cell;
}
このメソッドでセルが再作成されたときにボタンのオン/オフを切り替えることができるように、アイテムがお気に入りにされたときの参照をviewcontrollerに保持する必要があります。
vc のメソッドを使用して、cell.favButton で addTarget を実行しますか? しかし、ボタンのインデックスへの参照を取得するにはどうすればよいでしょうか?
誰かが似たようなものを実装しましたか?