0

uitableview を何度も上下にスクロールするとスティッキーになり、含まれているすべてのビューもスティッキーになります。

ここに私のコードがあります:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
                                      reuseIdentifier:CellIdentifier] ;
    }

    cell.textLabel.text=[NSString stringWithFormat:@"         %@",
                            [SongsNames objectAtIndex:indexPath.row]];

    UIImageView *b=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 35, 34)];
    b.image=[UIImage imageNamed:@"playbuttone.png"];
    [cell.contentView addSubview:b];
    [b release];
    UIButton *b2=[[UIButton alloc] initWithFrame:CGRectMake(260, 0, 50, 35)];
    [b2 setImage:[UIImage imageNamed:@"buye.png"] forState:UIControlStateNormal];
    [cell.contentView addSubview:b2];
    [b2 release];

    cell.textLabel.textColor=[UIColor colorWithWhite:1 alpha:1];
}

更新後:

cell.textLabel.text=[NSString stringWithFormat:@"         %@",[SongsNames objectAtIndex:indexPath.row]];

        [cell.contentView addSubview:b];
       // [b release];
        [cell.contentView addSubview:b2];
        //[b2 release];

        cell.textLabel.textColor=[UIColor colorWithWhite:1 alpha:1];

およびビューでdidload:

- (void)viewDidLoad{

b=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 35, 34)];
b.image=[UIImage imageNamed:@"playbuttone.png"];

b2=[[UIButton alloc] initWithFrame:CGRectMake(260, 0, 50, 35)];
[b2 setImage:[UIImage imageNamed:@"buye.png"] forState:UIControlStateNormal];

}

4

2 に答える 2

1

その関数の呼び出しごとに画像をリロードしています。スクロールすると、特に画像が静的でセルごとに同一であるため、この関数は実際に何度も呼び出されますが、これは必要ありません。

ビューが読み込まれたときに 2 つの画像を一度読み込み、View Controller に参照を保存して再利用します。テーブル ビューがセルを要求したとき。これで問題が解決する可能性が非常に高くなります。

于 2012-09-10T13:44:04.637 に答える
0

わかりにくい問題が発生する場合は、uicontrols を uitableviewcell に追加するのをやめて、このチュートリアルのようにカスタム セルを使用してください。

http://www.youtube.com/watch?v=PwcBdCUZNWs

于 2012-09-12T12:00:01.320 に答える