1

我正在开发一个从用户的联系人列表发送电子邮件和文本的应用程序。

我有一个视图控制器,它显示了 aMFMessageComposeViewControllerMFMailComposeViewController,并带有适当的代表设置。但是,composer 中出现的 UI 似乎偏移且不正确。

这是显示消息编写器的代码:

if ([MFMessageComposeViewController canSendText]) {
    MFMessageComposeViewController *composer = [[MFMessageComposeViewController alloc] init];
    composer.messageComposeDelegate = self;
    composer.recipients = [NSArray arrayWithObject:[self unformattedPhoneNumber:number]];
    [self presentViewController:composer animated:YES completion:nil];
}

很简单的东西。然而,当模态视图控制器出现时,它看起来像这样:

消息撰写视图控制器中的联系人选择器文本字段混乱

联系人选择器文本字段(您可以在其中按姓名或号码输入用户)在黑色背景下短暂显示,但随后会显示动画以隐藏在导航栏后面。更奇怪的是,联系人文本字段从第一响应者开始,因此您仍然可以输入它,这是您开始搜索联系人时的结果:

在此处输入联系人

我以前在以前的应用程序中多次使用过邮件和消息编辑器,但这是我以前从未见过的错误。我尝试在单独的线程中展示 VC,验证我正在使用的电话号码,但似乎没有任何改变。我注意到如果我将我的更改window.backgroundColor[UIColor whiteColor],则联系人文本字段具有白色背景,因此消息视图控制器的那部分似乎是透明的。我对邮件作曲家有类似的问题。

有没有人经历过这样的事情或者有什么想法?

4

1 回答 1

1

您是否正在使用UIAppearance自定义应用中的外观?看来您是因为该撰写视图上的导航栏样式不是默认设置。

这可能是由于自定义了这些内部组件使用的某些视图,导致其中一些视图中断。要对此进行测试,请删除所有UIAppearance代码并再次尝试查看它是否仍然存在。

如果是这种情况,您需要通过缩小UIAppearance调用范围来解决它,appearanceWhenContainedIn:以免影响内部类。

于 2014-05-29T20:55:32.270 回答