2011-05-24 38 views
0

我已經通過我的代碼中分配的每一件東西,並給它一個-1的標籤,除了使用標籤系統的圖標。所以這是我的代碼:removeFromSuperview由於某種原因用UIImageView替換對象?

NSLog(@" 1: %@", (Icon *)[self viewWithTag:index]); 
    Icon *icon = (Icon *)[self viewWithTag:index]; 
    CGRect frame = icon.frame; 
    [icon removeFromSuperview]; 
    icon = nil; 

    Icon *icon2 = [[Icon alloc] init]; 
    [icon2 makeIconStandardWithTag:(int)index]; 
    icon2.frame = frame; 
    [self addSubview:icon2]; 

    NSLog(@" 2: %@", (Icon *)[self viewWithTag:index]); 

NSLog 1將對象返回爲圖標。 NSLog 2將對象返回爲UIImageView,儘管我爲每個UIImageView徹底搜索代碼並給它一個-1標籤。通過移動NSLog 2,我發現這行[icon removeFromSuperview];是這裏的問題。如果不包括該行,則不會發生。但顯然我需要從超級視圖中刪除它,並且.alpha = 0是太多的修補修復程序。

回答

1

您爲標籤使用什麼值?如果我使用的值太低,我有時會遇到麻煩(我假設UIKit正在使用該標記值)。

嘗試將index設置爲某個隨機大數。

此外,爲什麼不只是使用實例變量來引用圖標?然後,您將不必亂七八糟地根據標籤識別圖標。

+0

它只發生在索引0上。 – Andrew 2011-05-24 00:21:21

+0

那麼這可能是你的問題。不應有任何理由必須使用標記值0.您是否可以嘗試使用較大的值。 – CharlieMezak 2011-05-24 00:22:16

+0

我有一堆從數組中加載的對象,並且從0開始。我不想將其更改爲arrayindex + 1,然後在用戶按下它以找出時再次將其更改回來哪一個打開。 – Andrew 2011-05-24 00:28:52

相關問題