2012-05-04 5 views
1

私はちょうど6つのカスタムセルでUITableを持っています。各CustomCellにはカスタムビューがある水平スクロールビューがあります。各CustomViewにはImageViewとTextがあります。UITableはスムーズにスクロールせず、セルはIOSで間違った情報を表示します

だから、uitableの

このように見えるかもしれ一緒にすべてを置くために - > CustomCell --->水平ScrollView - >のCustomView - ここ> ImageViewのとテキスト

は、Cellのコードです(いくつかの他の目的のためにそれを使用して)データノード とセル用tempTitleString =タイトル文字列のuitableの

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *MySecondIdentifier = @"MySecondIdentifier"; 
    UITableViewCell *cell2 = [tableView dequeueReusableCellWithIdentifier:MySecondIdentifier]; 

    if(cell2 == nil){ 

     cell2 = [(CustomCell*)[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MySecondIdentifier target:self row:indexPath.row parent:self]; 

    } 
    [cell2 setSelectionStyle:UITableViewCellSelectionStyleNone]; 
    [cell2 setValueToCellViewItem:tempTitleString setOfImage:dictCatData]; 
    return cell2; 

} 

ここDictCatData = NSMutableArrayの

私は、我々はネット上で持っている最高のthatsのだと思うように私は、非同期ダウンロードとキャッシュの SDWebImageを使用していCustomCellが

- (void) setValueToCellViewItem:(NSString *)pTitle setOfImage:(NSMutableArray *)catData{ 
[the_pScrolView setContentSize:CGSizeMake([catData count] * 107 , 107)]; 

int counter = 0; 
for(NSDictionary *tempDict in catData){ 

    NSString *url = [[NSString alloc]init]; 
    url = [tempDict objectForKey:@"main_img_url"]; 
    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    UIImageView *mSdWebImage = [[UIImageView alloc] initWithFrame:CGRectMake(counter * 107, 0, 107, 107)]; 
    [mSdWebImage setImageWithURL:[NSURL URLWithString:url] placeholderImage:nil]; 
    [mSdWebImage setBackgroundColor:[UIColor grayColor]]; 
    [the_pScrolView addSubview:mSdWebImage]; 

    ///Setting the title properties 
    UILabel *the_pLable = [[UILabel alloc] initWithFrame:CGRectMake((counter * 107) + 15, 85, 97, 22)]; 
    the_pLable.textColor = [UIColor whiteColor]; 
    the_pLable.font = [UIFont fontWithName:@"Helvetica" size:10.0]; 
    the_pLable.numberOfLines = 1; 
    the_pLable.backgroundColor = [UIColor clearColor]; 
    the_pLable.text = [tempDict objectForKey:@"title"]; 

    [the_pScrolView addSubview:the_pLable]; 
    counter++; 

} 

値設定方法ここ

です。

ScrollViewは、私は私のiPhone上でこのページを開くと

、画像はノー困難でそれらを見ることができていますように私は、推測適切にキャッシュされ、ダウンロードなっている0から30+の画像までの画像を含めることができます私が上にスクロールしようとすると、テーブルの下、スクロールが滑らかでない場合は

私の問題は

  1. です。だから、私はそれをよりスムーズにバックグラウンドイメージのダウンロードとキャッシングを行うことなく行うことができます

  2. 私はテーブルを上下に数回スクロールすると、カスタムセルが再描画されますので、CustomCellsはイメージなしでscrollView)は、/ topの下の他のカスタムセルからの画像を表示します。

時にはアプリケーションがクラッシュすることがありますが、これはメモリ管理の問題だと思います。

+0

私はあなたの質問が新しいものとしてもっと注目を集めるように私の答えを削除しました。 – dasblinkenlight

答えて

0

イメージはどれくらいダウンロードされていますか?私は同様の問題(余分な水平スクロールなし)を持っていて、実際の画像の代わりに画像の実際のサムネイルを使って修正することができました(TableView内)。

イメージのサムネイルを別のオブジェクトにダウンロードし、キャッシュして作成し、実際のイメージの代わりにイメージのサムネイルを読み込ませることができます。

これは私にとって完璧なスクロールです。

0

誤った画像を表示している再利用されたセルを修正するには、コードを呼び出して新しい画像を表示する前にcellForRowAtIndexPathの画像を削除するだけです。そうすれば、画像が遅れても、少なくとも古い画像は削除されたり隠されたりします。

関連する問題