手动设置 UIPopover 箭头方向和位置
我正在使用 UIBarButtonItem。在我的场景中,当我双击该栏按钮时,我想显示每个栏按钮的弹出窗口。所以我使用 UIBarButtonItem 中的 UITapGesture。但是,弹出箭头始终出现在所有 UIBarButtonItem 的中间。
我无法使箭头出现在每个栏按钮的中间。我的朋友告诉我使用点设置箭头方向,但我不知道该怎么做。
如何设置弹出窗口箭头的位置和方向?
I'm using UIBarButtonItem. In my scenario I want to show a popover from every bar button when I double-click that bar button. So I use a UITapGesture from that UIBarButtonItem. But, the popover arrow always appear in the middle of all UIBarButtonItem.
I can't make the arrow appear in the middle of each bar button. My friend was telling me to set the arrow direction using point, but I don't know how to do that.
How can I set both the position and direction of the popover's arrow?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用以下方法设置弹出窗口的方向:
您还可以使用
UIPopoverArrowDirectionUp
、UIPopoverArrowDirectionLeft
、UIPopoverArrowDirectionRight
和UIPopoverArrowDirectionAny
。对于斯威夫特
Set the direction for the popover using:
You can also use
UIPopoverArrowDirectionUp
,UIPopoverArrowDirectionLeft
, andUIPopoverArrowDirectionRight
, andUIPopoverArrowDirectionAny
.For Swift
我使用方法permissedArrowDirections = .Down,这对我有用。斯威夫特的例子:
I use method permittedArrowDirections = .Down, It's work for me. Swift example:
如果您使用 IBAction 方法,则可以使用
(id)sender
作为其参数。 (即调用按钮)然后您可以将弹出框的附件矩形设置为按钮的框架。箭头将尽力沿着该框架的侧面附着在适当的位置。请参阅 UIPopoverController 类参考。如有必要,您还可以手动对该 CGRect 进行硬编码。缩小矩形的宽度/高度将使您能够更严格地控制箭头的位置。
If you are using an IBAction method, you can use
(id)sender
as its parameter. (i.e. the calling button) Then you can set the popover's attachment rectangle to the frame of the button. The arrow will do its best to attach along the side of this frame in an appropriate spot. See UIPopoverController Class Reference.You can also hardcode that CGRect by hand if necessary. Shrinking the width/height of the rectangle will allow you to more tightly control the arrow's position.
您可以在 Storyboard Segue 的属性检查器中设置箭头的方向。例如,我在下面的截图中仅将箭头方向设置为向下:
You can set the direction of the arrow in Storyboard Segue's attribute inspector. For example, I set the arrow direction to down only in the following screenshot: