键盘显示时定位UIPopoverPresentationController

时间:2018-03-07 17:36:01

标签: ios xamarin.ios uipopovercontroller

我正在使用自定义UITableViewCell显示UIPopoverPresentationController。当用户点击单元格时,我们会显示一个包含带有一些可编辑字段的UIScrollView的Popup。

enter image description here

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个像素高的

enter image description here

  1. 我应该从外部视图管理Popover而不是单元格吗?
  2. 我该如何重新定位?
  3. 我查看了uipopover hides when keyboard showsUIPopoverController's view controller gets resized after keyboard disappears

0 个答案:

没有答案