我被困在隱藏的問題中。我想從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不同的值? –