![](/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.