我有.m和.h文件,可以帮助我控制UIView(调整大小,移动等)。
我发布在此处:RemoveFromSuperview specific views询问如何从我的超级视图中删除所有子视图。
我通过循环获得了这个想法,效果很好。
现在我想从我的UIView访问一个方法。
[myStickerView hideTools];
该方法隐藏了myStickerView中的一些按钮。
我使用此代码调用hideTools
方法,但无效。
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[myStickerView class]) {
[myStickerView hideTools];
}
}
有什么问题?请帮帮我。我想为hideTools
的所有myStickerView
致电self.view.subviews
。
感谢。
答案 0 :(得分:2)
我假设您的hideTools
方法仅适用于您的myStickerView
课程。
在这种情况下,您需要从该类调用hideTools:
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[myStickerView class]) {
[(myStickerView *)view hideTools];
}
}
编辑:我与其他人同时回答:(但如果您不向myStickerView
投射视图,则会收到警告。
答案 1 :(得分:0)
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[myStickerView class]) {
[view hideTools];
}
答案 2 :(得分:0)
首先,你的for循环中没有这样的对象调用myStickerView
。
子视图中的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];
}