22

为了在 iPad 上显示 UIActionSheet,我这样做了:

[actionSheetX showFromRect:RectX inView:myView animated:YES];

弹出框的箭头指向下方,我可以像使用普通弹出框一样将此位置更改为指向左、上或右吗?

4

3 回答 3

25

Apple 没有为 UIActionSheet 的内部实现提供对内部结构的任何访问showFromRect,但至于箭头方向,实际上有一种非常老套的方法来解决这个问题,并且能够将箭头方向更改为所需的方向。

诀窍是弄乱- (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animated. Apple 没有很好地记录这个 rect 参数,但是如果你的原始 rect 会给你一个向下的箭头方向,请输入一个高度和负数 origin.y 的矩形。y 会推动操作表弹出框一直向上从而显示向上的箭头方向。这是一个极端的 hack,但它在固件中始终如一地工作。希望能帮助到你。

于 2012-01-01T13:24:08.427 回答
4
CGRect cellRect = cell.bounds;
cellRect.size.width = cell.frame.size.width * 2;
cellRect.origin.x = -(cell.frame.size.width + 10.0);
[_actionSheet showFromRect:cellRect inView:cell animated:YES];

感谢 - 过分夸张。

iPad - 拆分视图控制器:它在主视图(表格视图)单元格的末尾显示带有左箭头的操作表。单元格内有 10 个像素的箭头。尝试这个。操作表显示的逻辑很容易理解。谢谢 - 曼拉杰。

于 2012-10-15T19:13:02.983 回答
2

-showFromRect:inView:方法的文档说明了这一点:

在 iPad 上,此方法在弹出框中显示操作表,其箭头指向视图的指定矩形

这意味着您可以通过摆弄矩形来让它显示您想要的箭头方向。但是,我没有理由想到您为什么要手动设置箭头方向,因为它UIActionSheet会自动计算最佳箭头方向。

于 2011-03-22T04:24:03.887 回答