簡體   English   中英

在View(iOS)的底部邊緣觸摸不注冊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM