我想創建一個完全透明的UIView覆蓋(並有子視圖)來接收觸摸。我可以將alpha設置爲較低值(如0.02)以獲得近似效果。我可以創建一個完全透明的UIView來接收觸摸嗎?
但我不知道是否有可能通過其他UIView配置alpha == 0
UIView接收觸摸?
我想創建一個完全透明的UIView覆蓋(並有子視圖)來接收觸摸。我可以將alpha設置爲較低值(如0.02)以獲得近似效果。我可以創建一個完全透明的UIView來接收觸摸嗎?
但我不知道是否有可能通過其他UIView配置alpha == 0
UIView接收觸摸?
您可以通過覆蓋在班級的完全透明視圖的hitTest:withEvent:
方法,比如實現這一點:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
return self;
}
的hitTest:withEvent:
的實施並不一定是簡單的,當然。問題是,只要從hitTest:withEvent:
返回該視圖,您甚至可以導致即使是完全透明的視圖也可以觸摸。
但是請注意,使用hitTest:withEvent:
來解決這個問題是一個很簡單的方法,可以創建一些非常奇怪的錯誤。謹慎使用此方法。
謝謝,讓我試試 – smilingpoplar
偉大的,凌駕'hitTest:withEvent:'的作品! – smilingpoplar
是的,搞亂這種方法可能有風險。如何覆蓋'drawRect:'?覆蓋,這是非常有據可查的。它可以通過一些自定義標誌來控制,或者調用'[super drawRect:...];'將視圖以其所有屬性等以常規方式繪製,或者根本不會在不可見的情況下執行任何操作, @smilingpoplar會發明的可調式狀態。 –
更好的方式來做到這一點是設置背景色:
UIView *view = ...;
view.backgroundColor = [UIColor clearColor];
添加UITapGestureRecognizer
這個掛鉤選擇到割膠迴應。
但UIView有一些子視圖。設置其backgroundColor不能隱藏這些子視圖。 – smilingpoplar
爲什麼你不使用UIButton與服裝風格..? –
@NitinGohel我不知道。不知道它是否適合我的問題。 – smilingpoplar
看看你是否想要觸摸你的Uivew的事件,然後用事件,手勢等代碼爲它,但使用Button你可以訪問它的IBAction並獲得點擊事件,如果按鈕的風格是custome,那麼也不需要設置alpha。使用UIView很容易。 –