gpt4 book ai didi

ios - 如何更改 MFMailComposeViewController 的背景颜色?

转载 作者:可可西里 更新时间:2023-11-01 06:05:31 39 4
gpt4 key购买 nike

如何改变MFMailComposeViewController的背景颜色?我尝试添加

mailController.view.backgroundColor = [UIColor redColor];

但是颜色还是白的。请帮忙。

最佳答案

我开始调试 MFMailComposeViewController 层次结构。这是我的代码。

MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init];

[self presentViewController:mailComposeViewController animated:YES completion:^{
UIViewController* mailViewController = [mailComposeViewController.topViewController.childViewControllers firstObject];
UIView *mailView = [mailViewController.view.subviews firstObject];
CALayer *mailLayer = mailView.layer;
mailLayer.opacity = 0.5f;

UIView *backgroundView = [[UIView alloc] initWithFrame:mailView.bounds];
backgroundView.backgroundColor = [UIColor redColor];
[mailViewController.view insertSubview:backgroundView atIndex:0];
}];

我发现 MFMailComposeViewController 是一种 UINavigationController,它有一个顶 View Controller ,它有一个 subview Controller 。 subview Controller 的 View 有一个 subview 。这个 subview 是内容所在的地方。

问题是这个 View 没有 subview 。所以我看看它的层是否有子层。它不是。通过改变层的 alpha 并在这个 View 后面添加一个背景颜色的 View ,我们可以清楚地看到这个 View 确实是我们想要的 View 。

经过一些searching周围我发现 mailLayer,它是一个 CALayerHost,不仅可以显示来自另一个进程的内容;它还允许用户交互从主机应用程序传递到远程进程。换句话说,这个类是跨进程边界传输用户操作和图形的关键。

所以我认为这是一个死胡同。您将无法优雅地更改背景颜色。

关于ios - 如何更改 MFMailComposeViewController 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606387/

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