我在UISplitViewcontroller中有一个带有标签“备注”的详细视图。

它的高度约束设置为
swift - 使用MFMessageComposeViewController,MFMailComposeViewController之后更改了约束(?)-LMLPHP

备注将填充文本,我想将其限制为最多3行(高度= 21)

这完美地工作:

swift - 使用MFMessageComposeViewController,MFMailComposeViewController之后更改了约束(?)-LMLPHP

当电话号码是手机时,不仅会显示电话,还会显示发送短信的按钮。但是,在显示MFMessageComposeViewController(对于电子邮件地址的MFMailComposeViewController也会发生同样的情况)之后,突然Remark标签显示了4行:

swift - 使用MFMessageComposeViewController,MFMailComposeViewController之后更改了约束(?)-LMLPHP

为了完整起见,没有太多代码要显示:

显示:

  @objc func sendEmail (sender : AnyObject) {

    let button = sender as! ActionButton
    let viewController = button.viewController


    var picker = MFMailComposeViewController()
    picker.mailComposeDelegate = viewController
    picker.setToRecipients([self.address!])

    viewController!.presentViewController(picker, animated: true, completion: nil)


}


并解雇

func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
        dismissViewControllerAnimated(true, completion: nil)
    }


我不会在该情节提要板上更改任何内容(请勿添加字段或添加/删除/更改约束)

任何人都知道这种情况如何发生以及如何解决?

最佳答案

我碰到了非常相似的东西。我有一个UIView直接位于UITableView下,并包含一个用于发送电子邮件的按钮。如果单击该按钮,然后使用MFMailComposeViewController弹出一个撰写电子邮件视图,那么当关闭该对话框时,就好像ViewController的视图的高度增加了50像素。我有一个约束,使我的UIView停留在底部。我必须创建一个Bool来跟踪我从电子邮件视图返回的时间,并将约束更改50个像素。这是我在viewWillAppear中拥有的代码,其中returnFromEmail是在显示MFMailComposeViewController之后设置为true的Bool:

bottomViewBottomConstraint.constant = returnFromEmail ? 50 : 0
returnFromEmail = false

关于swift - 使用MFMessageComposeViewController,MFMailComposeViewController之后更改了约束(?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33077068/

10-14 23:38
查看更多