如何相对于按钮的当前位置向上或向下显示方向的弹出窗口

时间:2013-08-20 16:59:54

标签: ios uipopovercontroller

我添加了一个滚动视图作为子视图,高度约为。 500。

scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(x,y,500,300)];
[self.view addSubView:scrollView];

现在我有另一种观点说View1包含许多按垂直方向排列的按钮。 View1的高度约为。我的scrollView高度的两倍。

View1 = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,300)];
[scrollView addSubView: View1];

现在我将scrollView的内容大小设置为适合我的View1。

[scrollView setContentSize: CGSizeMake(1000,300)];

现在可以完全滚动浏览我的View1。现在我需要显示一个popUpViewController,当我按下View1中的一个按钮时,方向向上或向下按照按钮的当前位置。例如,如果按钮位于我的scrollView框架的中间位置下方,则popOverViewController应该向上弹出方向。

现在如何获取按钮的相对坐标以滚动View框架,如果该按钮的初始位置位于scrollView的frame.height.y / 2下方,滚动后按钮向上移动说到我的scrollView上方的位置frame.height.y / 2,那你怎么得到相对坐标。我试过convertRect:toView:但没有成功。

我希望你们明白我想在这里说些什么。

1 个答案:

答案 0 :(得分:0)

使用presentPopoverFromRect:inView:permittedArrowDirections:animated:方法显示UIPopoverController,锚定到(箭头指向)特定视图。

要将弹出窗口固定到条形按钮,请使用presentPopoverFromBarButtonItem:permittedArrowDirections:animated:

您可以让iOS自动找出箭头方向。