Kri*_*son 8 iphone touchscreen ipad
我有一个使用整个屏幕的iPad应用程序(即UIStatusBarHidden在Info.plist文件中设置为true).主窗口和主视图的帧设置为(0,0,768,1024).主视图启用了多点触控.
视图控制器具有此代码来处理触摸:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView:nil];
NSLog(@"touchesMoved at location %@", NSStringFromCGPoint(location));
}
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器中运行应用程序时,它的工作方式与预期相同.当我将鼠标从屏幕的一个边缘移动到另一个边缘时,报告的X值从0变为767.报告的Y值从20变为1023.(这是一个已知的问题,模拟器不报告顶部的触摸即使没有状态栏,屏幕也会有20个像素.)
这有点奇怪: 当我在实际的iPad上运行应用程序时,X值按预期从0到767,但报告的Y值从-6到1017,而不是0到1023,正如我所料.
它似乎在模拟器上正常工作的事实让我怀疑真实设备的触摸屏没有完美校准,我的只是报告关闭六个像素的Y值.任何人都可以验证是这种情况吗?否则,还有什么能够解释Y值与我的预期相差六个像素吗?
(在几天内,我应该有第二台iPad,所以我可以用另一台设备测试它并比较结果.)
做了一些快速测试,我注意到了同样的事情。我开始了一个基于基本视图的项目,除了以下代码之外没有任何更改:
(iPadTestsAppDelegate)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
// Override point for customization after app launch
viewController.view.multipleTouchEnabled = YES;
viewController.view.userInteractionEnabled = YES;
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
(iPadTestsViewController)
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView:nil];
NSLog(@"touchesMoved at location %@", NSStringFromCGPoint(location));
}
}
Run Code Online (Sandbox Code Playgroud)
当我触摸屏幕边缘时,它会在 x 轴上报告负数,而在 y 轴上永远不会达到 0。添加一些变量来跟踪最大值和最小值,将这些作为 iPad 的角:{-5, 2}、{758, 2}、{-5, 1019}、{758, 1019}。
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |