iOS 7 上消息编辑器的奇怪行为
Posted
技术标签:
【中文标题】iOS 7 上消息编辑器的奇怪行为【英文标题】:Strange behavior with message composer on iOS 7 【发布时间】:2014-05-29 19:21:03 【问题描述】:我正在开发一个从用户的联系人列表发送电子邮件和文本的应用程序。
我有一个视图控制器,它提供MFMessageComposeViewController
或MFMailComposeViewController
,并具有正确的代理设置。但是,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]
,联系人文本字段的背景为白色,因此消息视图控制器的那部分似乎是透明的。我对邮件编写器有类似的问题。
有没有人经历过这样的事情或有什么想法?
【问题讨论】:
【参考方案1】:您是否正在使用UIAppearance
来自定义您应用中的外观?看来您是因为该撰写视图上的导航栏样式不是默认设置。
这可能是由于自定义了这些内部组件使用的某些视图,导致其中一些视图中断。要对此进行测试,请删除所有 UIAppearance
代码并再次尝试查看它是否仍然出现。
如果是这种情况,您需要通过使用appearanceWhenContainedIn:
缩小您的UIAppearance
调用来解决它,以免影响内部类。
【讨论】:
@bachonk:你能用你的代码解决这个问题吗?我有同样的问题,但我无法使用上述答案找到解决方案 我将appearanceWhenContainedIn:
用于我的自定义UINavigationController
子类:[[UINavigationBar appearanceWhenContainedIn:[RCNavigationController class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:kLightFontName size:18.0f], NSFontAttributeName, [UIColor whiteColor], NSForegroundColorAttributeName, nil]];
以上是关于iOS 7 上消息编辑器的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章