调整弹出窗口的大小 ViewController 以适应要在 UITableView 中显示的数据
Resizing the size of the popover ViewController to fit the data to be displayed in a UITableView
我正在开发一个有两个视图控制器的应用程序。第一个是当用户在 TextField 上执行长按手势时显示弹出窗口 ViewController(对于第二个视图控制器)。下面是以编程方式完成的弹出窗口代码(在第一个视图控制器中):
func longpressGestureTriggeredForIndicativeDesignWorkingLifeTextView (gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.state == UIGestureRecognizerState.began {
self.view.endEditing(true)
}
let popController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "IndicativeDesignWorkingLifeVC")
popController.modalPresentationStyle = UIModalPresentationStyle.popover
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
popController.popoverPresentationController?.delegate = self
popController.popoverPresentationController?.sourceView = (indicativeDesignWorkingLifeTextView!)
popController.popoverPresentationController?.sourceRect = (indicativeDesignWorkingLifeTextView as AnyObject).bounds
self.present(popController, animated: true, completion: nil)
}
当第二个视图控制器弹出显示它包含的 UITableView 时。弹出窗口的大小 VIewController 比第二个视图控制器中设置的 table 中包含的行数大得多。
如何将弹出窗口的大小 ViewController 设置为在高度和宽度方面与第二个视图控制器中设置的 UITableView 中包含的数据量相等?
在 2nd View controller 的 viewWillAppear
中,您需要获取 tableView 单元格的行高并计算单元格的数量以获得 tableview 的总高度。完成后,您可以使用 self.preferredContentSize
更改弹出窗口的高度
我正在开发一个有两个视图控制器的应用程序。第一个是当用户在 TextField 上执行长按手势时显示弹出窗口 ViewController(对于第二个视图控制器)。下面是以编程方式完成的弹出窗口代码(在第一个视图控制器中):
func longpressGestureTriggeredForIndicativeDesignWorkingLifeTextView (gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.state == UIGestureRecognizerState.began {
self.view.endEditing(true)
}
let popController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "IndicativeDesignWorkingLifeVC")
popController.modalPresentationStyle = UIModalPresentationStyle.popover
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
popController.popoverPresentationController?.delegate = self
popController.popoverPresentationController?.sourceView = (indicativeDesignWorkingLifeTextView!)
popController.popoverPresentationController?.sourceRect = (indicativeDesignWorkingLifeTextView as AnyObject).bounds
self.present(popController, animated: true, completion: nil)
}
当第二个视图控制器弹出显示它包含的 UITableView 时。弹出窗口的大小 VIewController 比第二个视图控制器中设置的 table 中包含的行数大得多。
如何将弹出窗口的大小 ViewController 设置为在高度和宽度方面与第二个视图控制器中设置的 UITableView 中包含的数据量相等?
在 2nd View controller 的 viewWillAppear
中,您需要获取 tableView 单元格的行高并计算单元格的数量以获得 tableview 的总高度。完成后,您可以使用 self.preferredContentSize