0

我正在针对 iOS 3.0 进行编码,并且正在尝试向我的应用程序添加旋转(横向)支持。

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

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

我确实看到了:链接文本,但这对我的情况没有多大帮助。

卡住。需要帮忙。谢谢。

4

1 回答 1

1

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

我理解这一点的方式(可能不正确的是,它self.navigationController.view.frameself.view.frame(x = 0,y = 0,宽度 = 320,高度 = 480)相同。然后我旋转self.viewM_PI/2在选择时进行了一些框架操作self.view.subviews 让一切正确地设置动画/位置/缩放。

这很好,但导航控制器不愿意承认 self.view 部分的触摸事件在 320 的右侧。本质上,如果这self.navigationController.view.clipsToBounds是真的,它甚至可能没有显示 self.view 的那部分。

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

于 2010-10-07T15:43:49.537 回答