我有一个弹出框,其中SourceRect是设置按钮(带齿轮图标的按钮)。 弹窗位置对于除LandscapeLeft之外的所有设备方向都是正确的。
我从XCode Interface构建器设置锚点并以编程方式设置源矩形:
var poc = segue.DestinationViewController as PVPencilOptionsController;
poc.ViewModel = this.ViewModel.ColorPicker;
var ppc = (UIPopoverPresentationController)poc.PresentationController;
ppc.SourceRect = this.PVEditIssuePhotoPencilOptionsButton.Frame;
以下是弹出位置的结果:
人像/颠倒(正确):
风景正确(正确):
左侧风景(错误)
如您所见,如果设备方向为横向左侧,则弹出箭头和设置按钮之间存在间隙。
如何找出这个差距来自哪里?
答案 0 :(得分:1)
我有类似的问题,我的全部都是因为我在计算我的尺码和我在错误位置的位置,有时也使用了错误的值。我建议您找到问题的两件事:
<强> 1。在LayoutSubviews中执行所有位置/大小调整计算:覆盖控制器中的LayoutSubviews并在那里计算您的定位信息。在基地召唤之后。
<强> 2。注销框架和边界的尺寸:这样你就可以看到你拥有的和你想要的位置。在布局子视图之前和之后执行此操作以查看差异。