私は間違って実装していると思いますcellForRowAtIndexPath
。デフォルトでは非表示になっていUISlider
て、表のセルでボタンを押すと表示される があります。最初のセルのボタンを押すと、最初のセルだけでなく、下にスクロールすると 3 つおきのセルにもスライダーが表示されます。現在、スライダーの隠しプロパティをYES
in にリセットすることでこれを回避していcellForRowAtIndexPath
ます。デフォルトで非表示にする必要があるセル内の他のビューに対してもこれを行います。これにより、最初のセルまでスクロールして戻ると、新しい問題が発生します。プロパティが でリセットされるため、スライダーが非表示になりますcellForRowAtIndexPath
。これにより、私は何か間違ったことをしていると信じるようになります。
これが私のコードです:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
SongsCustomCell *songCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (songCell == nil) {
songCell = [[SongsCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSLog(@"new cell created");
}
NSDictionary *dictionary = [parseTrackArray objectAtIndex: indexPath.row];
NSString *trackTitle = [dictionary objectForKey:@"trackTitle"];
NSString *trackLink = [dictionary objectForKey:@"trackStreamLink"];
songCell.trackLinkString = trackLink;
songCell.trackTitleString = trackTitle;
[songCell.trackTitleLabel setFont:[UIFont fontWithName:@"Calibri" size:22]];
songCell.trackTitleLabel.text = [NSString stringWithFormat:@"%@", trackTitle];
songCell.playButton.hidden = NO;
songCell.playbackSlider.hidden = YES;
songCell.playerHasLoaded = NO;
songCell.moviePlayer.view.hidden = YES;
return songCell;
}