ios11 - 第一个表格单元格被 MFMessageComposeViewController 上的联系人输入字段覆盖
问题描述
- (void)sendSmsWithSubject:(NSString *)subject andBody:(NSString *)body {
MFMessageComposeViewController *smsCompose = [[MFMessageComposeViewController alloc] init];
smsCompose.subject = subject;
smsCompose.body = body;
smsCompose.messageComposeDelegate = self;
[self presentViewController:smsCompose animated:YES completion:nil];
}
正如您在随附的屏幕截图中所见,第一个表格单元格“TestA”被 MFMessageComposeViewController 上的文本字段覆盖。以上是代码片段。
这似乎是 MFMessageComposeViewController 上的一个错误,但是,在对 stackoverflow 等进行一些搜索之后,没有关于该“问题”的记录。我的代码有什么错误或遗漏吗?在此先感谢您的帮助。
注意:此 UI 问题在 iOS10 设备上不会发生。
解决方案
最后发现,就我而言,问题是由以下原因引起的:
[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
作为修复/解决方法:
- (void)sendSmsWithSubject:(NSString *)subject andBody:(NSString *)body {
[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentAutomatic];
MFMessageComposeViewController *smsCompose = [[MFMessageComposeViewController alloc] init];
smsCompose.subject = subject;
smsCompose.body = body;
smsCompose.messageComposeDelegate = self;
[self presentViewController:smsCompose animated:YES completion:nil];
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
// Disable contentInsetAdjustmentBehavior when leave MFMessageComposeViewController.
[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
[self dismissViewControllerAnimated:YES completion:nil];
}
希望这对遇到相同问题的其他人有所帮助。谢谢。