2011-11-02 56 views
3

我有一個具有圓形圖像的自定義按鈕。圓形圖像按鈕VS方形控制器

問題是,默認情況下控制器是方形的,所以每當我點擊圖像的角落時,按鈕都會響應調用相關的方法,實際上他不應該是因爲角落裏沒有圖像,所以該按鈕不應答。

任何人都知道圍繞這個錯誤的工作?

回答

0

處理此問題的一種方法是減小按鈕的大小。它仍然是一個矩形(或方形)。更多涉及的方式是實現- (UIView *) hitTest: (CGPoint) pt withEvent: (UIEvent *) event &句柄按鈕的哪個區域被點擊&如果它不在您定義的圓圈中忽略該觸摸事件。

但是,如果你問我,讓它成爲現實。在接觸中,人們很少這麼準確(與鼠標點擊相比)。所以矩形按鈕提供了更多的區域供用戶點擊按鈕,即使他稍微偏離了標記。

+0

但是,如果我減小按鈕的大小,我會減少圖像的大小。這不是我想要的,我想要保持圖像的大小。 – bruno

+0

@bruno,那麼你必須看看另一種解決方案。 'hitTest'方法 –

+0

我解決了我的問題,在我的按鈕上使用第二個視圖,並在方法touchesBegan我檢查了什麼是我的視圖的標記(如果它是我初始化的那個,我推動按鈕,否則我不會推它)。你用hitTest給了我這個意念,所以我要把這個答案標記爲正確的原因,我認爲你的解決方案也能起作用。 – bruno

0

你不能用UIControl設置來解決這個問題。您必須執行自定義匹配檢測並確定圖像是否處於輕擊狀態。你可以使用UITapGestureRecognizer來做到這一點。