我想將地圖視圖顯示爲永久性背景,而其他視圖顯示在其頂部(我將設置頂視圖的alpha值爲0.9,以便地圖在底部隱約可見),並在有些地圖顯示。觸摸事件是否可以轉發到MKMapView?
我有一個容器視圖,它被分層在地圖視圖的頂部,我想知道在容器視圖邊界內發生的觸摸事件是否可以傳遞給地圖視圖,以便它可以滾動等。這是一個草圖項目,展示了一個架構的例子。
(容器視圖是在地圖視圖的下半部分,所述容器視圖的頂部和包含視圖控制器的視圖的阿爾法均爲0,所以給用戶的地圖是在整個可見屏幕)。
它很容易將包含的視圖控制器視圖或子視圖控制器內發生的觸摸事件轉發到地圖背景視圖控制器。
如果我做了什麼樣的觸摸事件傳遞給地圖視圖這樣
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
MapBackgroundViewController *parent = (MapBackgroundViewController *) self.parentViewController;
[parent.mapView touchesBegan:touches withEvent:event];
}
則什麼也不會發生。
有沒有辦法將touch事件傳遞給地圖視圖,以便它會滾動等?
難道你不能實現這一點,而不使用地圖backgroundviewcontroller的獨立viewcontroller ontop? (也許在mapbackgroundvc中使用子視圖...) – nsuinteger
視圖中太多的事情發生了,在地圖上太多的事情我需要大量的視圖控制器來組織它們。包含的視圖控制器實際上是RVC的整個層次的其他東西。試圖將這一切作爲單獨的觀點來實施將是非常混亂和無組織的。 – Gruntcakes
查看當您將'userInteractionEnabled = NO'設置爲這些頂視圖時會發生什麼。如果是的話,你可以從這一點回來。 – nsuinteger