UIActionSheet更改箭头位置?

时间:2010-09-21 18:32:08

标签: ipad uikit uiactionsheet

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

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

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

3 个答案:

答案 0 :(得分:25)

Apple没有为UIActionSheet的showFromRect内部实现提供内部结构的任何访问权限,但是对于箭头方向,实际上有一种非常黑客的方法可以解决这个问题,并且能够改变箭头指向所需方向。

诀窍是弄乱- (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animated中的rect参数。 Apple没有很好地记录这个rec​​t参数,但是如果你的原始rect会给你一个向下箭头的方向,请输入一个大的高度和负数的origin.y将推动动作表popover一路向上因此显示向上箭头方向。这是一个极端的黑客攻击,但它在整个固件中运行一致。希望能帮助到你。

答案 1 :(得分: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];

感谢 - overboming。

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

答案 2 :(得分:2)

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

  

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

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

相关问题