更改方向时,Custom Alertview会调整其默认大小

时间:2013-10-15 13:33:23

标签: ios uialertview

在我的应用程序中,我创建了一个自定义警报视图。在旋转设备时,自定义警报视图也会旋转,但警报视图的大小会自动更改。我该如何解决这个问题?

First image is my alertview before rotation

Second Image is after rotation

第一张图片是旋转前的警报视图,第二张图片是“镜像/风景”旋转之后。 有人可以帮我解决这个问题吗?

我使用以下代码来调整alertview的框架,

- (void)willPresentAlertView:(UIAlertView *)alertView
{
    if( UIDeviceOrientationIsPortrait( [UIApplication sharedApplication].statusBarOrientation ) )
 {
 alertView.frame = CGRectMake(208.0f, 412.f, 352.f, 180.f);     
}
else
{
    alertView.frame = CGRectMake(336.0f, 284.f, 352.f, 180.f);      
}

如果在视图中存在alertview时旋转设备,则会出现此问题

2 个答案:

答案 0 :(得分:1)

如果是继承标准uialertview,那么你必须使用下面的

设置框架
- (void)setFrame:(CGRect)frame {
frame.size = CGSizeMake(352.0, 180.0);
[super setFrame:frame];
}

希望这有帮助

答案 1 :(得分:0)

只需写下两行

[YourCustomView setAutoresizesSubviews:NO];
YourCustomView.autoresizingMask = UIViewAutoresizingNone;

试试这个