旋转UIAlertView

7
我已经创建了一个自定义的UIAlertView(通过子类化并混合其显示函数),它有一些自定义子视图,并具有非标准大小。
当我创建和显示它时,它工作得很好,然而,当设备旋转时,警报会旋转,然后返回到默认大小。
有什么想法可以重写哪些函数-或者我应该调整UIViewController?
谢谢, 彼得

好的,我发现在setNeedsDisplay中重置bounds矩形可以重置大小...但是现在每当我旋转设备时,就会出现一系列相当奇怪的事件: 1)UIAlertView正确显示, 2)UIAlertView缩回到其默认大小 3)UIAlertView旋转 4)UIAlertView返回所需大小 有什么想法可以防止动画期间的缩小? - Peter Sarnowski
1个回答

4

不确定强制旋转UIAlertView是否符合苹果GUI指南,但是您可以通过定义状态栏(状态栏和UIAlertView粘在一起)来旋转它。

application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
application.statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

但是UIAlertView就像其他许多UIView一样,因此请尝试以下操作:

- (void)didPresentAlertView:(UIAlertView *)alertView
{
    [UIView beginAnimations:@"" context:nil];
    [UIView setAnimationDuration:0.1];
    alertView.transform = CGAffineTransformRotate(alertView.transform, degreesToRadian(90));
    [UIView commitAnimations];
}

似乎我的问题没有表述清楚... 当设备方向改变时,我的UIAlertView确实会自动旋转。但问题是它的尺寸也随之改变了。 - Peter Sarnowski
我也遇到了同样的问题。 - Raxit

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