我在UISplitViewcontroller中有一个带有标签“备注”的详细视图。
它的高度约束设置为
备注将填充文本,我想将其限制为最多3行(高度= 21)
这完美地工作:
当电话号码是手机时,不仅会显示电话,还会显示发送短信的按钮。但是,在显示MFMessageComposeViewController(对于电子邮件地址的MFMailComposeViewController也会发生同样的情况)之后,突然Remark标签显示了4行:
为了完整起见,没有太多代码要显示:
显示:
@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/