移动视图的内容而不是视图本身

时间:2014-07-16 13:26:17

标签: objective-c

我正在创建自己的幻灯片菜单,非常简单。

我正在创建一个子视图,将其添加到视图中,然后将self.view向右滑动170px,这会显示新的子视图(名为secondView)。

但是,将self.view向右移动后,新视图上的按钮都不会被点击(就像我之前那样)。所以我想象,因为视图已移动,视图是应用程序的可点击区域。

是否有办法将内容移动到视图而不是视图,以允许新视图可点击。

1 个答案:

答案 0 :(得分:0)

问题是: 触摸视图框外的内容永远不会触发其子视图的事件。 我的意思是,self.view.frame之外的触摸永远不会触发secondView的事件,而self.view[self.view.window addSubview:secondView]的子视图之一。 见:Event Handling Guide for iOS

您可self.view移动secondView[self.view.window addSubView:secondView]; CGRect viewFrame = self.view.frame; CGRect secondFrame = secondView.frame; viewFrame.origin.x += 170; secondFrame.origin.x += 170; [UIView animateWithDuration:0.2 animations:^{ self.view.frame = viewFrame; secondView.frame = secondViewFrame; }];

self

注意
如果UINavigationController不是window的rootViewController,上面的代码可能会导致麻烦。例如在{{1}}。