gpt4 book ai didi

ios - MKMapView 之上的透明 UIView

转载 作者:行者123 更新时间:2023-12-01 19:19:22 24 4
gpt4 key购买 nike

单击 MKMapView 标注气泡时,我触发了一个

DetailsViewController *details = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
[self presentModalViewController:details animated:YES];
[details release];

在 DetailsViewController 中,我将背景设置为透明:
self.view.backgroundColor = [UIColor colorWithHue:0.0 saturation:0.0 brightness:1.0 alpha:0.2];

当我单击标注时,我看到动画开始(出现 DetailsView 并且是透明的),但是当动画完成后,它就不再透明了。

最佳答案

问题是当你呈现一个新 View 时,它会控制屏幕,所以你的背景 View 消失了。

这种行为是正确的,因为假设您一直打开新 View 并堆叠它们,操作系统无法在后台保存您的所有 View !它只是简单地使然后消失。

与其让一个新的 View Controller 出现并控制屏幕,你可以让你的 View 出现在第一个 View 之上。

尝试这样的事情,让我知道它是如何进行的(我只是在这里编写了代码,所以我不能向你保证它的工作,但你肯定明白这个想法):

   DetailsViewController *details = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
details.view.frame = self.view.frame;
details.view.backgroundColor = [UIColor colorWithHue:0.0 saturation:0.0 brightness:1.0 alpha:0.2];
[self.view addSubview:details.view];
[details release];

我以前做过,而且可能,但我不能向您保证您的应用程序的稳定性。

其他“更清洁”的解决方案是让您的新 View 成为旧 View 的一部分。您可以将它设置在底部(隐藏),这样用户就看不到它,并且当您需要它时,您可以使用动画将其放在主屏幕中。问题是您将把 2 个 Controller 合并为一个。

关于ios - MKMapView 之上的透明 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046322/

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