我有一个只有 6 个自定义单元格的 UITable。每个 CustomCell 都有一个水平滚动视图,其中包含自定义视图。每个 CustomView 上都有一个 ImageView 和 Text。
所以把它们放在一起它可能看起来像这样
UITable --> CustomCell ---> Horizontal ScrollView --> CustomView --> ImageView and 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 上打开此页面时,我猜图像正在下载并正确缓存,因为我可以毫无困难地看到它们
我的问题是
当我尝试上下滚动表格时,滚动不流畅。那么如何在不影响背景图片下载和缓存的情况下让它更流畅呢
当我向上和向下滚动表格几次时,我猜自定义单元格被重绘,所以没有图像的自定义单元格(即滚动视图中没有自定义视图)显示来自下方/顶部其他自定义单元格的图像。
有时应用程序崩溃,我想这是内存管理的问题。