要在iPad上显示UIActionSheet,我就这样做了:
[actionSheetX showFromRect:RectX inView:myView animated:YES];
popover的箭头指向下方,我可以将此位置更改为指向左侧,上方还是右侧,就像使用普通的弹出框一样?
答案 0 :(得分:25)
Apple没有为UIActionSheet的showFromRect
内部实现提供内部结构的任何访问权限,但是对于箭头方向,实际上有一种非常黑客的方法可以解决这个问题,并且能够改变箭头指向所需方向。
诀窍是弄乱- (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animated
中的rect参数。 Apple没有很好地记录这个rect参数,但是如果你的原始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
会自动计算最佳箭头方向。