0

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

第一张图片是我旋转前的警报视图

第二张图片是旋转后

第一张图片是我在旋转之前的警报视图,第二张图片是在纵向/横向旋转之后。有人可以帮我解决这个问题吗?

我用下面的代码来调整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);      
}

如果在视图中存在警报视图时旋转设备,则会发生此问题

4

2 回答 2

1

如果是标准 uialertview 的子类,那么您必须使用以下设置框架

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

希望这可以帮助

于 2013-10-21T06:36:17.873 回答
0

只需写以下两行

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

试试这个

于 2013-10-15T13:37:22.330 回答