2012-06-27 2 views
0

나는 잠시 벽에 머리를 대고 있었지만 여기에 간다. PhoneGap을 사용하여 앱을 만듭니다. 아래쪽에는 탭 5 개가있는 탭 막대가 있고 한 탭에는 Google지도 (GitHub의 이전 플러그인에서 MapKit)가로드되지만 문제는지도 탭에있는 직후 다른 탭으로 전환하면 새 탭이 지도가 아직있는 것처럼 터치 이벤트를 수락하지 않습니다. 당신이 할 경우UIWebView BringToFront

self.mapView.hidden = YES; 
self.childView.hidden = YES; 

:하지만 (지도는 여기에 방법, 표시되지 않습니다. -> 홈 탭 -지도 탭> 알림 탭을 클릭하고 이벤트 알림 탭에서 작업 만지지 나는 그렇게 생각

.이 어떻게 든 폰갭 전면에 사용하는있는 UIWebView을 가지고하는 것입니다 해결하기 위해

을 나는 시도했다 :

[self.childView bringSubviewToFront:self.webView]; 

과 :

[self.webView bringSubviewToFront:self.mapView]; 

또한 'bringSubviewToFront :' '의 UIViewController'에 응답하지 않을 수 있습니다

[self.viewController bringSubviewToFront:self.webView] 

코드의 마지막 줄이 오류를 제공하고 아무 일도 발생하지 않습니다. 어떤 도움을 크게 감상 할 수

if (!self.mapView) 
{ 
    [self createView]; 
} 

// defaults 
CGFloat height = 480.0f; 
CGFloat offsetTop = 0.0f; 

if ([options objectForKey:@"height"]) 
{ 
    height=[[options objectForKey:@"height"] floatValue]; 
} 
if ([options objectForKey:@"offsetTop"]) 
{ 
    offsetTop=[[options objectForKey:@"offsetTop"] floatValue]; 
} 
if ([options objectForKey:@"buttonCallback"]) 
{ 
    self.buttonCallback=[[options objectForKey:@"buttonCallback"] description]; 
} 

if ([options objectForKey:@"regionDidChangeCallback"]) 
{ 
    self.regionDidChangeCallback=[[options objectForKey:@"regionDidChangeCallback"] description]; 
} 

CLLocationCoordinate2D centerCoord = { [[options objectForKey:@"lat"] floatValue] , [[options objectForKey:@"lon"] floatValue] }; 
CLLocationDistance diameter = [[options objectForKey:@"diameter"] floatValue]; 

CGRect webViewBounds = self.webView.bounds; 

CGRect mapBounds; 
mapBounds = CGRectMake(
         webViewBounds.origin.x, 
         webViewBounds.origin.y + (offsetTop/2), 
         webViewBounds.size.width, 
         webViewBounds.origin.y + height 
         ); 

[self.childView setFrame:mapBounds]; 
[self.mapView setFrame:mapBounds]; 

MKCoordinateRegion region=[ self.mapView regionThatFits: MKCoordinateRegionMakeWithDistance(centerCoord, 
                          diameter*(height/webViewBounds.size.width), 
                          diameter*(height/webViewBounds.size.width))]; 
[self.mapView setRegion:region animated:YES]; 

: 여기

은지도를 그리는 데 사용되는 코드입니다.

답변

1

UIViewController가 응답하지 않으므로 viewController 객체에서 bringSubviewToFront : 메서드를 호출 할 수 없습니다.

[self.viewController bringSubviewToFront:self.webView]; 

권리 :

[self.viewController.view bringSubviewToFront:self.webView]; 

나는이 당신에게 유용 할 수있다 생각 당신은

잘못로는 다음 것을 CHAGE 수 있습니다.

+0

작동하지 않았습니다. 나는 또한 그것이 무엇을 위해 사용되는지 전혀 모르기 때문에 childview를 없애려고했다. 그리고 그것 없이는 작동한다. 나는 그 밖의 무엇을 시도해야할지 모른다. – Yuriy

+0

신경 쓰지 마라. 감사! – Yuriy