カスタム セルが 6 つしかない UITable があります。各 CustomCell には、カスタム ビューを含む水平スクロール ビューがあります。各 CustomView には ImageView と Text があります。
全部まとめるとこんな感じかも
UITable --> CustomCell ---> Horizontal ScrollView --> CustomView --> ImageView と Text
UITable の Cell のコードは次のとおりです
- (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 および tempTitleString = セルのタイトル文字列 (他の目的に使用)
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++;
}
私は非同期ダウンロードとキャッシュにSDWebImageを使用しています。これは、ネット上で最高のものだと思います。
ScrollView には、0 から 30 以上の画像の範囲の画像を含めることができます
iPhoneでこのページを開くと、画像がダウンロードされ、適切にキャッシュされていると思います。問題なく表示できるからです。
私の問題は
テーブルを上下にスクロールしようとすると、スクロールがスムーズになりません。背景画像のダウンロードとキャッシュに影響を与えずに、どうすればよりスムーズにできますか
テーブルを数回上下にスクロールすると、カスタム セルが再描画されるため、画像のない CustomCells (つまり、scrollView に customViews がない) は、他のカスタム セルの画像を下/上に表示します。
アプリがクラッシュすることがありますが、これはメモリ管理の問題だと思います。