在使用触摸事件的locationInView时,如何确定设备上CGPoint的有效范围?

时间:2012-09-23 21:45:32

标签: iphone ios ipad uitouch touchesbegan

我知道iPhone有480 x 320,iPad是1024 x 768,但我不知道如何以编程方式确定。我很感激能得到的任何帮助。

1 个答案:

答案 0 :(得分:1)

UITouch*yourTouchNameHere = [touches anyObject];
CGPoint yourPointNameHere=[touch locationInView:self.view];

这自动意味着触摸在屏幕上,因此返回的任何触摸点都是有效的,但下面的代码仍然可以帮助您理解:


接收屏幕尺寸:[UIScreen mainScreen].bounds.size

iOSDevice的高度(以像素为单位)返回:

[UIScreen mainScreen].bounds.size.height

iOSDevice的宽度(以像素为单位)返回:

[UIScreen mainScreen].bounds.size.width

iOSDevice是iPhone还是:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){}

iOSDevice是iPad还是:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad){}

另一个stackOverflow question here显示您还可以使用

以点数(320x400等)返回整个屏幕分辨率:

CGRect screenBounds = [[UIScreen mainScreen] bounds];

使用以下命令返回屏幕分辨率比例:

CGFloat screenScale = [[UIScreen mainScreen] scale];

使用上面两行来获取像素宽度和高度的另一种方法包括:

CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);