旋转时如何使UIActionSheet居中显示

34

有许多其他人问过这个问题,但从未得到答案。这个问题似乎很琐碎,但在苹果的文档或其他地方都没有被解决。

我正在使用showInView方法展示我的UIActionSheet实例:


    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"Test" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destroy" otherButtonTitles:@"One", @"Two", nil];

    [myActionSheet showInView:self.view];

UIActionSheet在启动时无论是哪个方向,都会呈现在中心位置,但是当我旋转iPad后,它会出现在右上角或者左下角(取决于是否更改方向为纵向或横向)。

如果Autoresizing Masks被设置为UIViewAutoresizingFlexibleBottomMarginUIViewAutoresizingFlexibleRightMargin,那么这种行为是可以预期的。大多数视图元素的默认autoresizingMask值都是这样,因此我尝试通过调用UIActionSheet实例的setAutoresizingMask方法来重置该值。

[myActionSheet setAutoresizingMask:UIViewAutoresizingNone];

但是无论选择哪种自动调整大小掩码的值,都不会产生任何变化。

有没有解决这个问题的方法?我希望不要通过在旋转时取消UIActionSheet并重新显示它来解决——这种方法原则上似乎是不必要的。

1个回答

0

UIActionSheetUIView 的子类,因此如果需要,您可以设置它的框架。 我刚刚测试了一下,设置框架确实有预期的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接