2011-09-07 213 views
1

PanelImage是全球allocED,並在從viewDidLoad中UIImageView.hidden屬性不起作用?

調用方法發起
PanelImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"panel.png"]; 
[self.view addsubView:PanelImage]; 

我的形象來了正常,但 當我嘗試使用隱藏它

PanelImage.hidden = YES;

它不隱藏 我測試使用

屬性如果(PanelImage.hidden),但我犯規通過

我還印它

NSLog(@"panel is hidden %d",PanelImage.hidden); 

它輸出「面板被隱藏0」,即使設置它後

PanelImage.hidden = 1;

請幫助,至少告訴我一些技巧來調試它。 有很多使用PanelImage.hidden的方法,它用於2天前工作。現在只需要指出PanelImage.hidden工作的地方是自定義初始化函數(從ViewDidLoad調用) 也是一塊非常大的代碼。

大量的調試後,我來到了一個點,PanelImage.hidden去GetSymbolAttr

-(void)GetSymbolAttr 
{ 

int tmp = 0; 
NSArray* PosAndSizeArrForCurrSlot = [[PosAndSizeArr objectAtIndex:SlotId] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]]; 
for(NSString* values in PosAndSizeArrForCurrSlot) 
    PositionAndSize[tmp++] = [values intValue]; 

} 

的不可操作

PanelImage.hidden = YES;//works till here here 
    [self GetSymbolAttr];//wont work after this function is called 

定義,你可以看到什麼是發生在GetSymbolAttr這將使模式。隱藏無法運行

回答

2

如果PanelImage.hidden = YES;現在正在運行,那麼您可以將其alpha.set設置爲零。 PanelImage.alpha = 0 ;

+0

沒有工作,還有什麼可能是問題?有什麼內部的UIImageView我需要知道! – Yadnesh

+0

首先檢查你的IBoutlet連接的鏈接。通常你的代碼沒有錯。它在我的情況下工作。請確保您的鏈接連接正確 – Droid

+0

我沒有使用IBOutlet! – Yadnesh

0

試試這個:

UIImageView *PanelImage = [[UIImageView alloc] initWithImage:[UIImage ...]]; 
    [self.view addsubView:PanelImage]; 

我沒有找到initWithImageNamedUIImageView

+0

我沒有在這裏正確複製代碼我的錯誤,我編輯了這個問題 – Yadnesh

+0

你可以建議我一些不同的方法來調試,因爲在我的代碼有很多方法正在使用PanelImage.hidden,它用於2天之前工作。現在只指出其中PanelImage.hidden工作的地方是自定義初始化函數(從ViewDidLoad調用) – Yadnesh

+0

該代碼在我身邊正常工作...嘗試:[PanelImage setHidden:YES] ; – Maulik

0

你是否在同一個metod中設置了PanelImage.hidden = YES,你在做什麼UIImageView * PanelImage = [[UIImageView alloc] initWithImageNamed:@「Panel.png」];?或者你沒有使用相同名稱的PanelImage課程嗎?

+0

正如我所說即時通訊在很多方法中使用它,但是它的也在我啓動PanelImage的相同方法中!它有什麼不同嗎? – Yadnesh

+0

從你的代碼中刪除UIImageView *,你創建了一個新的局部變量,它與全局的 – aknew

+0

不錯的建議, ,但我不這麼認爲,因爲自定義初始化函數這樣做 PanelImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @ 「Panel.png」]]; UIImageView * PanelImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@「Panel.png」]]; – Yadnesh