我想允许不同视图之间的交流。
我有两个较小的视图,它们位于较大的视图之上,类似于 iOS 的视频播放器,但有一些不同。当我点击更大的视图时,我想切换视图外观、隐藏或取消隐藏。我有一个所有视图都符合的协议。我想将视图添加到另一个我将调用的类HideViewsService
中,它有一个NSArray
属性。我可以强制使用此类HideViewsService
并添加视图的类仅添加符合此协议的视图吗?甚至只是UIViews
?
另外,我想在我知道的所有视图上调用一个方法,但我不知道如何通过编译器获取。这是我的-hideAllViews
方法:
-(void)hideAllViews
{
for(int i=0; i<self.viewArray.count; i++)
{
id obj = [self.viewArray objectAtIndex:i];
if([obj isKindOfClass:[UIView class]] == false)
{
return;
}
UIView *view = (UIView *)obj;
if([view respondsToSelector:@selector(hide)])
{
[view hide]; // the compiler obviously doesn't like this
}
}
}
谢谢!!我还在学习,所以请告诉我是否有更好的方法(不仅更简单,而且更好)。