[英]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.