【发布时间】:2010-09-21 18:32:08
【问题描述】:
为了在 iPad 上显示 UIActionSheet,我这样做了:
[actionSheetX showFromRect:RectX inView:myView animated:YES];
弹出框的箭头指向下方,我可以将此位置更改为指向左、上或右,就像使用普通弹出框时一样?
【问题讨论】:
标签: ipad uikit uiactionsheet
为了在 iPad 上显示 UIActionSheet,我这样做了:
[actionSheetX showFromRect:RectX inView:myView animated:YES];
弹出框的箭头指向下方,我可以将此位置更改为指向左、上或右,就像使用普通弹出框时一样?
【问题讨论】:
标签: ipad uikit uiactionsheet
Apple 没有为 UIActionSheet 的 showFromRect 内部实现提供对内部结构的任何访问,但至于箭头方向,实际上有一种非常hack-y 的方法来解决这个问题,并且能够改变箭头方向到想要的方向。
技巧是弄乱- (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animated 中的rect 参数。 Apple 没有很好地记录这个 rect 参数,但是如果你的原始 rect 会给你一个向下的箭头方向,请输入一个高度和负数 origin.y 的矩形。y 会一直向上推动操作表弹出窗口从而显示向上的箭头方向。这是一个极端的 hack,但它在固件中始终如一地工作。希望能帮助到你。
【讨论】:
rect 参数的方法签名?如果您只需要为view 提供边界矩形,那么rect 参数可能不存在。
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。
【讨论】:
-showFromRect:inView: 方法的文档说明了这一点:
在 iPad 上,此方法在弹出框中显示操作表,其箭头指向视图的指定矩形
这意味着您可以通过摆弄矩形来让它显示您想要的箭头方向。但是,我没有理由想到您为什么要手动设置箭头方向,因为UIActionSheet 会自动计算最佳箭头方向。
【讨论】: