2013-10-12 103 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]; 
     }