【发布时间】:2012-04-10 00:04:39
【问题描述】:
我有一个自定义 UIView,其中包含在视图的 drawRect 函数中绘制的交互式绘图。在 iPad 上,绘图尺寸为 1024 x 768。对于 iPhone,我使用 CGContextScaleCTM 为 iPhone 缩小绘图。为了在我的图纸上保持正确的纵横比,我将视图缩小到 480 x 360 并将视图的 y 值设置为 -20(有效地从视图的顶部和底部裁剪 20 个像素,这很好)。现在一切看起来都正确,但我需要将触摸坐标从 iPhone 转换为 iPad 坐标,以便我的视图的交互部分工作。如果我将 uiview 320 调高并使用
point.y *=768/320
为了转换 y 值,位置是正确的(但我的绘图是扭曲的)我已经做了一些测试硬编码点,所以我知道这应该可以工作,但我很难让数学与庄稼。这是我到目前为止所拥有的:
CGPoint point = [[touches anyObject] locationInView:self.view];
[self endTouch:&point];
NSLog(@"true point: %@",NSStringFromCGPoint(point));
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
point.x *= 1024/480;
point.y *= 768/360;
NSLog(@"corrected point: %@",NSStringFromCGPoint(point));
}
谁能帮我做这个转换?谢谢!
【问题讨论】:
标签: iphone objective-c ipad uiview