我有一个应用程序,它使用触摸事件在屏幕上绘制。我使用UITouch locationInView返回触摸屏的CGPoint。问题是,x和y坐标总是相同的--但只有在运行iOS 4.2.1的第二代设备上,而且只有当我的应用程序是在发布模式下构建的时候。当直接从touchesMoved或touchesEnded事件对象进行触摸时,这似乎只是一个问题,因为我的按钮可以正确地响应触摸。
感谢http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/上的一篇文章,我能够通过使用LLVM-GCC编译器而不是较新的LLVM3.0编译器以及通过使用优化级别0来修复这个问题。
有趣的是,使用GCC编译器更正了我在touchesEnded中收到的触摸位置,同时将优化级别更改为-O0,更正了我在touchesMoved中收到的触摸位置。我不能解释为什么会这样,但现在我欣喜若狂,我的应用程序可以在这些设备上运行。
我的问题是-使用旧的编译器将我的应用程序交付到商店有什么缺点?(我理解优化级别的影响。)有没有办法配置这个项目,让我只对iOS 4.2.1和/或第二代设备使用较旧的编译器和较低的优化级别?
发布于 2012-03-11 06:40:34
我使用的是这个黑客:
// not working (location.x == location.y)
CGPoint location = [touch locationInView:_myView];
//
// working!
static CGPoint location;
location = [touch locationInView:_myView];
//https://stackoverflow.com/questions/8497795
复制相似问题