我有一系列的模式視圖,我呈現,其中每個都有一個頂部的標題工具欄和UIBarButtonItem在右上角的「X」圖像,允許用戶點擊它來消除視圖。IOS UIButton沒有響應觸摸,需要多次按下,UIScreenEdge手勢干擾?
我遇到的問題是這些按鈕通常不會響應觸摸,並且在他們執行操作前似乎需要5-10次敲擊。我甚至增加了按鈕的圖像尺寸以使區域更大,但沒有幫助。然而,在模擬器中,通過點擊鼠標指針,它們似乎立即可以正常工作。
我注意到的一件事是,主視圖似乎有一個我沒有添加的UIScreenEdgePanGestureRecognizer。我認爲這是Iphone通知中心處理可以從頂部拉下來的。底部也有一個。這些干擾我的按鈕?這些手柄總是對輕微的拖拽作出響應。
我做了一個測試,我把按鈕放在屏幕中間,並且它每次都能立即運行。雖然頂部和底部是工具欄和按鈕的顯而易見的地方,但邊緣手勢識別器會導致這種衝突並且不會使所有人都發瘋似乎很奇怪。
// The button, added as part of a standard toolbar on very top of screen
UIButton *closeButtonImage = [UIButton buttonWithType:UIButtonTypeCustom];
[closeButtonImage setImage:[UIImage imageNamed:@"close.png"] forState:UIControlStateNormal];
[closeButtonImage setFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width - 35, 9, 26, 26)];
[closeButtonImage addTarget:self action:@selector(closeClick:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithCustomView:closeButtonImage];
很棒!這似乎是問題,而不是手勢。他們現在反應良好。這顯然是非常有意義的,因爲框架矩形原點是相對於其父類UIBarButtonItem的。當我嘗試將UIButton添加到工具欄時,必須留有餘地,當然這不會起作用。 – Miro