iOS iCarousel 重用不同专辑保留旧专辑信息问题

Posted

技术标签:

【中文标题】iOS iCarousel 重用不同专辑保留旧专辑信息问题【英文标题】:iOS iCarousel reuse for different albums retains old album info issue 【发布时间】:2012-11-26 19:20:30 【问题描述】:

我正在使用 Nick Lockwood 的 iCarousel。优秀作品。 在将新专辑加载到轮播之前,我需要以某种方式重置/清除轮播。

背景: 应用程序从 API 中提取 XML 并将其解析为数组。 TableView 使用第一个 xml 作为专辑列表。 当用户选择/点击相册时,我会使用 iCarousel 推送查看。 用户可以备份并选择另一个相册

第一张专辑效果很好。 只要之后挑选的任何专辑都具有与第一张一样多或更多的照片,就可以正常工作。 当用户选择的相册比选择的第一个相册少时,会发生炸弹。

错误在:

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view

...//('thumbs' is thumbnail array)
 APIContentObject *currentPhoto = [thumbs objectAtIndex:index];        
...

希望将我的数组同步到 iCarousel,当 index 为 6 且 array.count 为 4 时,它会尝试加载“[thumbs objectAtIndex:index]”...

我试过 carousel=nil;在 viewWillDisappear 上,不。 是我做一个轮播=nil;在 ViewDidLoad 中,我什么也得不到……它是什么时候实例化的?在 ViewDidLoad 之前?

我真的只需要知道如何清空它或清除它或重新定位/初始化它。 我尝试了一个'for'循环来手动删除itematindex,但我也有错误..

它确实有效,只是不像预期的那样。律的建议? 非常感谢。

编辑: 好的,当我使用时:

- (NSUInteger)numberOfVisibleItemsInCarousel:(iCarousel *)carousel

    //return the total number of items in the carousel
    return [thumbs count];

设置可见项目的数量...这似乎是一个兴趣点。 如果我不设置它/使用这个代码块,那么只会显示 7 张左右的图像......如果我设置它,它们都会显示出来,但是当点击图像数量较少的专辑时它会爆炸。 我在这个上兜圈子。

【问题讨论】:

【参考方案1】:

从另一篇关于回收问题的帖子中获得线索。

我接到了我的要求,将图像加载到回收器中......(ProgrammerError *ME!)

if (view == nil)
    ...
    [((FXImageView *)view) setImageWithURL:[NSURL URLWithString:currentPhoto.ThumbnailURL] placeholderImage:[UIImage imageNamed:@"loading.png"]];
    ...

把它移到条件之外,然后 whamo... 好多了。

【讨论】:

以上是关于iOS iCarousel 重用不同专辑保留旧专辑信息问题的主要内容,如果未能解决你的问题,请参考以下文章

IOS无法创建与已删除专辑同名的专辑?

专辑发行日期 - 回声

Use MusicBrainz in iOS查询专辑的完整信息

Facebook iOS SDK:获取专辑封面图片

确定歌曲在 iOS 中是不是有专辑封面

iOS:从 iPod 库中获取和显示专辑插图