第一个表格单元格由MFMessageComposeViewController

时间:2018-07-13 09:15:17

标签: ios11 mfmessagecomposeview

- (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];
}

如所附的屏幕截图所示,MFMessageComposeViewController的文本字段覆盖了第一个表格单元格“ TestA”。以上是代码段。

这似乎是MFMessageComposeViewController上的错误,但是,在对stackoverflow等进行一些搜索之后,没有关于该“问题”的记录。我的代码有什么错误或遗漏吗?预先感谢您的帮助。

注意:iOS10设备上不会发生此UI问题。

enter image description here

1 个答案:

答案 0 :(得分:0)

最后我发现问题是由以下原因引起的:

[[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];
}

希望这对遇到相同问题的其他人很有帮助。谢谢。