![](/img/trans.png)
[英]iOS: Constraining View with fixed aspect ratio to trailing edge OR bottom edge
[英]Touch not registering at bottom edge of View (iOS)
我正在尝试针对iPhone使用基于全屏OpenGL ES 2的应用程序。
我可以使用它,但是由于某种原因,我无法在应用程序的底部16px上绘图。
注意:
我通过沿着屏幕的边缘拖动手指来绘制每条线。
在底部16px的寄存器随时随地触摸截至 16px的接触。
如果我在底部16像素上方触摸,则触摸和笔触会显示在正确的位置。
我正在iOS 7.1 iPhone 5S上进行测试。
为什么会这样呢? 这是我相当标准的触摸处理代码,如下所示:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect bounds = [glView bounds];
UITouch* touch = [[event touchesForView:glView] anyObject];
CGFloat scale = glView.contentScaleFactor;
CGPoint touch_location = [touch locationInView:glView];
touch_location.y = (bounds.size.height - touch_location.y);
touch_location.x *= scale;
touch_location.y *= scale;
//... draw stuff etc.
}
事实证明,对此没有真正的解决方案。 我在应用商店上查看了其他绘画应用程序,但没有一个画在边缘。 为了对称起见,大多数都不会在底部和顶部绘制16px左右。 我最终做了同样的事情。
在您的项目状态栏中是隐藏的。
如果是这样,则您需要在视图中添加+20,因为状态栏不存在。 例如,如果您说的是带有iPhone状态栏的View Controller,那么在纵向模式下,高度将为460。但是如果状态栏被隐藏,则必须将其设置为480。
当然,这是因为iOS7中控制中心的滑动手势。 关于UIButton,我遇到了同样的问题(请参阅此处 )
在您的情况下,您可以尝试添加preferredsStatusBarHidden:
- (BOOL)prefersStatusBarHidden {
return YES;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.