我在屏幕上有幾個UIViews,它們都沒有重疊,我想選擇一個基於X/Y座標的UIView(屏幕作爲整個視圖尺寸,因此iPhone 5的320x568)對所選UIView進行轉換例如,在下圖中,我想根據輸入(40,40)
選擇藍色矩形,然後執行轉換,例如將其顏色更改爲紅。如何根據X/Y座標在屏幕上選擇UIView
謝謝!
我在屏幕上有幾個UIViews,它們都沒有重疊,我想選擇一個基於X/Y座標的UIView(屏幕作爲整個視圖尺寸,因此iPhone 5的320x568)對所選UIView進行轉換例如,在下圖中,我想根據輸入(40,40)
選擇藍色矩形,然後執行轉換,例如將其顏色更改爲紅。如何根據X/Y座標在屏幕上選擇UIView
謝謝!
UIView實現了一個名爲hitTest:withEvent的方法:(see docs here),它將回答包含給定點的視圖層次結構中最深的視圖。
使用方法如下:
// in the view controller subclass
CGPoint point = CGPointMake(40.0, 40.0);
UIView *subviewContainingPoint = [self.view hitTest:point withEvent:nil];
UIViews有一個tag
屬性,這可能是一種更簡單的方法來完成你正在尋找的東西。
您可以在界面構建器中設置標籤,也可以以編程方式進行設置。
UIView* newView = [[UIView alloc] initWithFrame:CGRectMake(x,y,z,a)];
[newView setBackgroundColor:[UIColor blueColor]];
newView.tag = 1;
[self addSubview:newView];
後,你可以通過調用視圖進一步向上層次的viewWithTag
方法訪問該視圖,然後做一些事來它
[[self viewWithTag:1] setBackgroundColor:[UIColor redColor]];
雖然這不是不可能通過查詢找到你的意見他們框架,並在結果座標上做一些數學運算,這些標籤可以更好地爲您服務。
選擇通過觸摸屏? –