2013-10-12 134 views
0

我有.m和.h文件,這些文件可以幫助我控制UIView(調整大小,移動等等)。UIView類的訪問方法

我在這裏發佈了:RemoveFromSuperview specific views詢問如何從我的超級視圖中刪除所有子視圖。

我得到了循環的想法,並且效果很好。

現在我想從我的UIView訪問一個方法。

[myStickerView hideTools]; 

該方法隱藏了myStickerView中的一些按鈕。

我用這個代碼,打電話給hideTools的方法,但是不行。

for (UIView *view in self.view.subviews) { 
    if ([view isKindOfClass:[myStickerView class]) { 
     [myStickerView hideTools]; 
    } 
} 

什麼問題?請幫幫我。我想從self.view.subviews撥打hideTools所有myStickerView

謝謝。

+0

我想提高我的答案。你班的名字是什麼? – LuisCien

回答

2

我假設您的hideTools方法僅適用於您的myStickerView類。

在這種情況下,你想打電話從該類hideTools:

for (UIView *view in self.view.subviews) { 
    if ([view isKindOfClass:[myStickerView class]) { 
     [(myStickerView *)view hideTools]; 
    } 
} 

編輯:我回答的同時與他人:(但如果你不投以myStickerView,你」 ð得到一個警告。

+1

+1正確的演員陣容 – Joel

+0

我不認爲這是正確的演員... myStickerView是一個實例 – LuisCien

+0

@LuisCien這是真的,但我們不知道那個類的名字呢。如果我們知道了班級的名字,我會更新答案。 –

0
for (UIView *view in self.view.subviews) { 
if ([view isKindOfClass:[myStickerView class]) { 
    [view hideTools]; 
} 
+0

您需要將視圖投射到myStickerView才能調用hideTools – Joel

0

首先,有沒有這樣的對象調用myStickerView在for循環。

而在子視圖的view是宣佈爲UIView班。

這裏是我的建議

for (myStickerView *stickerView in self.view.subviews) { 
    if ([stickerView isKindOfClass:[myStickerView class]) { 
     [stickerView hideTools]; 
    } 

或動力目標值子視圖申報類

for (UIView *view in self.view.subviews) { 
     if ([view isKindOfClass:[myStickerView class]) { 
      [(myStickerView *)view hideTools]; 
     }