在顯示圓形圖像(需要保持交互式)的UIView上,如何防止圓圈外側接收任何用戶交互,所以其他用戶界面視圖仍然是活動的?允許用戶在非矩形UIView內容之外進行交互
我試圖用CGPath掩蓋UIView,但沒有幫助。
有什麼想法嗎?
在顯示圓形圖像(需要保持交互式)的UIView上,如何防止圓圈外側接收任何用戶交互,所以其他用戶界面視圖仍然是活動的?允許用戶在非矩形UIView內容之外進行交互
我試圖用CGPath掩蓋UIView,但沒有幫助。
有什麼想法嗎?
由於觸摸事件在視圖層次結構中向下冒泡,因此作爲UIView,您可以檢查觸摸事件是否與您有關,如果它不只是返回NO並且該事件將傳遞到下一個UIView層次
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
for (UIView * view in [self subviews]) {
if ([view pointInside:[self convertPoint:point toView:view] withEvent:event]) {
return YES;
}
}
return NO;
}
不要將任何接收UI事件的元素放在圓圈外。 如果這是不可避免的,那麼只要根據需要禁用圓圈外的所有元素即可。
我更新了我的標題 - 允許用戶交互,我需要得到像下這3個藍色按鈕來獲取事件,即使圓圖像和視圖幀之間的重疊區域的α下。 – 2012-07-17 12:26:23
如果您只需要控件的一部分處於活動狀態,那麼只需禁用整個控件並放入一個僅覆蓋所需區域的不可見按鈕即可。 – Dustin 2012-07-17 12:28:10
如果在uiview上將交互設置爲false,不可見按鈕也將變爲非活動狀態。你知道任何非解決方法嗎? – 2012-07-17 12:50:25