我遇到一个与scrolling
和UITableView
相关的非常奇怪的问题。
我在专辑中填充了TableView
collection
个MPMediaItems
个歌曲。在IB中,我有UIImageView
,如果歌曲存储在云中,则会显示indicator
。填充TableView
cell
后,我会检查歌曲是iCloud
,如果不是UIImageView
完全删除,如果是,则分配ImageView
image
:
UIImageView *isCloudIcon = (UIImageView *)[self.view viewWithTag:105];
if ([[rowItem valueForProperty:MPMediaItemPropertyIsCloudItem] boolValue] == NO) {
[isCloudIcon removeFromSuperview];
} else if ([[rowItem valueForProperty:MPMediaItemPropertyIsCloudItem] boolValue] == YES) {
isCloudIcon.image = [UIImage imageNamed:@"iCloudIcon.png"];
}
这显示最初很好,但它也是怪异开始的地方。如果所有歌曲都存储在本地,一切正常。同样,如果所有歌曲都存储在云中,一切正常。但如果它是一个组合,那么它最初会正确显示,但是当您scroll up
和down
时,iCloud
图标image
视图开始神奇地消失。通过玩它,我已经能够确定它与弹跳滚动有关。每次TableView在滚动时反弹都会删除ImageView
,似乎无缘无故。关闭弹跳解决了这个问题,但这很刺耳,我宁愿把它留在里面。
有没有人遇到这样的行为?提前谢谢。
答案 0 :(得分:0)
您的代码来自您的UITableViewCell
子类?
如果是这样,您的问题并不关心弹跳,但问题是移除了UITableViewCell
的{{1}}会被重复使用。
你应该隐藏它们而不是删除。
代码应该是:
isCloudIcon