我在UISplitViewcontroller中有一个标签为“备注”的详细视图。
它的高度约束设置为< = 63,它的底部空间设置为它下面的UITableView
备注将填充文字,我想将其约束为最多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)
}
我没有在故事板视图上更改任何内容(不添加字段或添加/删除/更改约束)
任何人都知道如何发生这种情况以及如何解决这个问题?
答案 0 :(得分:0)
我碰到了非常相似的东西。我有一个直接位于UITableView下的UIView,它包含一个发送电子邮件的按钮。如果我单击按钮,然后使用MFMailComposeViewController弹出撰写电子邮件视图,那么当对话框被取消时,就好像ViewController的视图已将其高度增加了50个像素。我有一个约束,让我的UIView保持在最底层。我必须创建一个Bool来跟踪我从电子邮件视图返回的时间,并将约束更改为50像素。这是我在viewWillAppear中的代码,其中returnFromEmail是我在呈现MFMailComposeViewController后设置为true的Bool:
bottomViewBottomConstraint.constant = returnFromEmail ? 50 : 0
returnFromEmail = false