[英]Resize the MFMailComposeViewController and prevent it from covering the whole screen
我有一个MFMailComposeViewController,它使用以下方法调用:
- (IBAction)sendEmail:(id)sender {
NSArray *toRecipents = [NSArray arrayWithObject:@"email@email.com"];
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:@"Email"];
[mc setMessageBody:message.text isHTML:NO];
[mc setToRecipients:toRecipents];
// Present mail view controller on screen
[self presentViewController:mc animated:YES completion:NULL];
}
我想要控制器加载时,我希望他的高度比视图的高度小50像素,我不希望他占据整个屏幕。 有什么办法吗?
编辑:我面临的问题是,我正在调用的MFMailComposeViewController最初是在使用模态页面卷曲效果调用的视图控制器内部,因此卷曲效果阻止了我按下发送电子邮件按钮! 这是一张照片
因此,无论您尝试多少,您都无法单击发送按钮...在这种情况下我该怎么办而不会被苹果拒绝
编辑2:我可以只关闭模式卷曲页面效果,然后弹出此视图控制器吗?
据我所知,没有标准或允许的方式来做您想要的事情。
我还要担心是否会通过批准,因为Apple指出了有关邮件撰写者的以下事项:
要点:此类的视图层次结构是私有的,您不能对其进行修改。 但是,您可以使用UIAppearance协议来自定义实例的外观。 呈现邮件组合视图控制器后,您的应用无法更改电子邮件内容。 用户可以编辑所呈现实例的内容,但是系统会忽略编程更改。 如果要为内容字段设置值,请在显示界面之前进行设置。 类参考
如果您对发送电子邮件有一些自定义设计要求,建议您实现自己的视图并使用一些服务器发送电子邮件,但是我不确定您的设计要求有多难。
尝试手动更改MFMailComposeViewController
框架,并使用addSubview:
而不是presentViewController:animated:completion:
::
mc.view.frame = CGRectMake(0, 20, 320, 400);
// Use addSubview: insead of [self presentViewController:mc animated:YES completion:NULL];
[self.view addSubview:mc.view];
注意:我不确定此行为是否会通过Apple App Store批准过程来实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.