gpt4 book ai didi

objective-c - UIWebView 置于前台

转载 作者:行者123 更新时间:2023-11-29 04:34:42 24 4
gpt4 key购买 nike

我已经把头撞在墙上有一段时间了,但现在还是这样。我正在使用 PhoneGap 构建一个应用程序。底部有一个选项卡栏,有 5 个选项卡,其中一个选项卡加载 Google map (来自 GitHub 的旧插件的 MapKit),但问题是,当您在 map 选项卡中切换到另一个选项卡时,新选项卡会加载 Google map 。不接受触摸事件,就好像 map 仍然在那里一样。 ( map 不可见,具体方法如下:

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

但是如果您执行以下操作:“ map ”选项卡 ->“主页”选项卡 ->“通知”选项卡,则触摸事件将在“通知”选项卡上起作用。

我认为解决这个问题的方法是以某种方式将 PhoneGap 使用的 UIWebview 带到前面。

我已经尝试过:

[self.childView bringSubviewToFront:self.webView];

和:

[self.webView bringSubviewToFront:self.mapView];

还有:

[self.viewController bringSubviewToFront:self.webView]

最后一行代码出现此错误:“UIViewController”可能不会响应“bringSubviewToFront:”并且没有任何反应。

以下是用于绘制 map 的代码:

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];

如有任何帮助,我们将不胜感激。

最佳答案

你不能在viewController对象上调用bringSubviewToFront:方法,因为UIViewController不会对此做出响应。您可以按如下方式进行更改,

错误:

[self.viewController bringSubviewToFront:self.webView];

右:

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

我认为这可能对你有用。

关于objective-c - UIWebView 置于前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com