2012-09-12 39 views
2

iOS中的「可點擊」區域應該是按鈕還是可以使用通用UIView,UIImage等?iOS中的「可點擊」區域應該是按鈕嗎?

假設我有一段帶有圖標,邊框,陰影等的文字。它看起來像一個雙板。什麼是最好的實施方式?使用一個自定義的UIButton,只需添加子視圖或創建一個通用的UIView?

任何想法讚賞!

回答

2

您可以簡單地將UIGestureRecognizer添加到您的UIView並處理它們。您可以找到文檔here和教程here

+0

太棒了。捕捉事件的原始流程!數字。 – sova

-1

如果目標區域足夠大,可以在可點擊視圖的頂部放置一個透明的UIButton(將按鈕類型切換爲自定義,但不提供圖像)以攔截點擊。

1

可能對於包含多個子視圖的視圖,您希望使用UIView子類。雖然UIButton可以用於添加視圖,狀態更改,啓用/禁用可能會對整個視圖(包括子視圖)產生不可思議的效果。使用你自己的UIView子類將確保顯示的內容不會受到任何狀態變化的影響,給你完全的控制權。您可以覆蓋

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

攔截您的自定義視圖上的觸摸。如果你要這樣做,請記住userInteractionEnabled字段必須設置爲true。

附加說明:您提到陰影是您問題中的一個元素。如果你使用CALayer來做到這一點,絕對是避免使用UIButton,因爲它是處理不同狀態的一組圖層,相當複雜。