【发布时间】:2010-04-16 14:39:33
【问题描述】:
我正在升级 iPhone 应用程序,到目前为止一切顺利(设法调整大多数表单的屏幕显示大小)。但是,我无法解决一个问题 - 仅在旧的 320x480 区域中检测到触摸。有什么想法可以解决吗?
谢谢
编辑:这是获取超级视图边界的代码执行时的结果:
CGFloat wdth = self.view.superview.bounds.size.width; NSLog(@"%d", wdth); CGFloat hgth = self.view.superview.bounds.size.height; NSLog(@"%d", hgth);结果:
2010-04-16 14:25:36.268 xxx[14871:207] 0 2010-04-16 14:25:36.269 xxx[14871:207] 1073741824(%f) 的结果:
2010-04-16 14:37:26.048 xxx[15053:207] -1.998374 2010-04-16 14:37:26.049 xxx[15053:207] 0.000000(%g) 的结果:
2010-04-16 14:37:41.113 xxx[15084:207] -1.99837 2010-04-16 14:37:41.115 xxx[15084:207] 9.48221e-38【问题讨论】:
-
可能过于明显的建议,但您是否在项目中搜索过“320”或“480”的实例?
-
是的 - 我找不到任何...而且我的所有视图都显示正常 - 触摸事件不会在 320x480 区域之外触发。
-
请改用
NSLog(@"%g", ...)。宽度和高度是浮点数,而不是整数。 -
CGSize 使用浮点数,因此您可能希望像这样输出边界:
NSLog(@"%f",wdth); -
@kape:你确定
self.view.superview != nil?否则你报告的数字毫无意义。
标签: iphone objective-c cocoa-touch uikit ipad