iPhone - 调整UIActionSheet的大小

时间:2010-11-23 16:53:47

标签: iphone ipad

我需要提供一个显示10个按钮的UIActionSheet。当我在iPad上这样做时,UIActionSheet显示在垂直很长(不美观)的弹出窗口上。是否可以将UIActionSheet大小指定为最大大小?

我试过这个

myActionSheet.frame = CGRectMake(0,0,300,300);
myActionSheet.bounds = CGRectMake(0,0,300,300);

并且还尝试将这些行放在

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {

没有成功。

任何线索?

感谢

2 个答案:

答案 0 :(得分:2)

我认为这是您无法真正使用像UIActionSheet这样的内置类来实现目标的情况之一。我不认为它被设计用于你有10个按钮的情况。它只是不能很好地扩展,就像你发现的那样。

但是我们假装可以改变大小。更改尺寸时会发生什么?每个按钮都有一个最小尺寸,可以轻松使用。而且你还需要在按钮之间留出一些空间,以免引起误动作。因此,即使你可以改变它的大小,也不能减少它。并且由于它无意改变大小,因此您必须尝试访问所有按钮并调整大小并移动它们。有人可能会争辩说也许这些按钮可以放在列中,但由于没有实现,如果你让UIActionSheet更宽,它仍然无济于事。

我建议您:

  1. 创建您自己的自定义视图,按照您的喜好放置所有10个按钮。
  2. 使用表格视图显示选项。由于可以滚动表视图,因此可以获得您喜欢的大小。
  3. 如果您在弹出框中出现的modalInPopover上将YES设置为UIViewController,则用户必须先做出选择,然后才能继续前进。

答案 1 :(得分:0)

尝试使用` - (void)showFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated 因为在Apple文档中他们说: “在iPad上,此方法在弹出框中显示操作表,其中箭头指向视图的指定矩形。弹出窗口不与指定的矩形重叠。”

`