我正在使用自定义UITableViewCell显示UIPopoverPresentationController。当用户点击单元格时,我们会显示一个包含带有一些可编辑字段的UIScrollView的Popup。
sourceView设置为父Controller的View,SourceRect设置为TableCell
popoverPresentationController.SourceView = presentingViewController.View;
popoverPresentationController.PermittedArrowDirections = UIPopoverArrowDirection.Any;
var rectInTableView = containingTableView.RectForRowAtIndexPath(path);
var rectInSuperView = containingTableView.ConvertRectToView(rectInTableView, containingTableView.Superview);
// The "/2" on the Height of the SourceRect was so the PopOver appear half way into the cell rather than at it's bottom edge
popoverPresentationController.SourceRect = new CGRect(rectInSuperView.X, rectInSuperView.Y, rectInSuperView.Width, rectInSuperView.Height / 2);
这样可以正常工作,直到出现键盘。如果我不听WillReposition委托弹出动画进入视图的左上角
如果我尝试将弹出动画重新定位到只有10个像素高的
我查看了uipopover hides when keyboard shows和UIPopoverController's view controller gets resized after keyboard disappears