我被困在隐藏的问题中。我想从Superview中删除所有UIProgressView。我以这种方式创建跨按钮,无法在点击“交叉”按钮后从超级视图中删除UIProgressView?
crossButton = [[CCMenuItemImage alloc] initWithNormalSprite:[CCSprite spriteWithSpriteFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"close-bttn.png"]] selectedSprite:nil disabledSprite:nil block:^(id sender)
{
[self hideProgressBarForDownload];
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationInAppLayerClosed object:self userInfo:nil];
[[GameManager sharedGameManager]setCurrentLayer:-1];
[self removeFromParentAndCleanup:YES];
}];
虽然被点击时,下面的方法调用的层次结构
-(void) hideProgressBarForDownload
{
[[DownloadManager sharedDownloadManager]removeAllProgressbarsIfvisible];
}
-(void)removeAllProgressbarsIfvisible
{
NSArray * allkeys = [currentDownloads allKeys];
for (int i = 0; i < [allkeys count]; i++)
{
NSString *key = [allkeys objectAtIndex:i];
DownloadItem * item = [currentDownloads valueForKey:key];
UIProgressView * progress = item.progressIndicator;
//progress.hidden = YES;
if (progress.superview)
{
[progress removeFromSuperview];
}
}
}
我想每一段代码是正确的,但不知道为什么他们并没有删除。
在此先感谢。
删除if(progress.superview)并查看它是否有效? – hariszaman
你的代码对我来说也很合理。进度视图是如何创建和连接到下载项目的?你有没有尝试调试'removeAllProgressbarsIfvisible'? 'progress'有没有与null不同的值? –