视图和按钮在旋转后无法响应触摸

时间:2010-10-05 17:07:39

标签: iphone uiactionsheet uiinterfaceorientation cgaffinetransform

我正在编写iOS 3.0编码,我正在尝试为我的应用添加轮播(横向)支持。

旋转的一切都很简单。但是,从纵向旋转到横向模式后,屏幕的右三分之一(480-320)无法响应所有事件(触摸,拖动等)。我已经验证了关键窗口正在接收事件,但这些事件没有传递到屏幕右侧(横向)的按钮和UIViews。

我正在使用NSNotificationCenter接收方向更改事件(而不是使用自动旋转标志)。

我确实看到了:link text但这对我的情况没有多大帮助。

卡住。需要帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

我已经解决了我遇到的问题..我基本上需要做[self.navigationController.view setNeedsLayout]

我理解这一点的方式(可能不正确的是self.navigationController.view.frameself.view.frame相同并且两者都等于(x = 0,y = 0,width = 320,height = 480)。然后我将self.view轮换为M_PI/2并对select self.view.subviews进行了一些帧操作,以便将所有内容设置为动画/位置/缩放。

这很好但是导航控制器不愿意承认触摸事件到自我的部分。查看320的权利。实质上,如果这个self.navigationController.view.clipsToBounds是真的,它甚至可能没有显示了self.view的一部分。

无论如何,在导航控制器的视图上设置setNeedsLayout解决了这个问题。我希望这有助于其他人。