旋转视图时视图宽度不会改变

时间:2013-07-06 11:53:43

标签: iphone orientation-changes

我在textfield中创建了一个视图应该像这样的字符方法。当我将视图从纵向更改为横向时,我的视图宽度没有变化。

  viewForautoCompleteTableView = [[UIView alloc]initWithFrame:CGRectMake(30, 120, 212, 100)];
        viewForautoCompleteTableView.autoresizingMask=UIViewAutoresizingFlexibleWidth;


        [self.view addSubview:viewForautoCompleteTableView];
        viewForautoCompleteTableView.layer.borderWidth=1;
        viewForautoCompleteTableView.layer.borderColor=[UIColor grayColor].CGColor;

谢谢

2 个答案:

答案 0 :(得分:1)

请注意: 在轮换时,self.view.frame大小不会改变,self.view.bounds会改变,并且边界代表当前接口方向的正确值。

答案 1 :(得分:0)

您必须检查两点

。您的观点(viewForautoCompleteTableView)是否已分配?

。如果要在旋转时更改宽度,则必须在didRotateFromInterfaceOrientation:UIInterfaceOrientation)fromInterfaceOrientation方法

中更改视图的宽度
-(void)didRotateFromInterfaceOrientation:    (UIInterfaceOrientation)fromInterfaceOrientation{

//设置条件以检查您的方向类型,即纵向或横向

CGSize newSize= CGSizeMake(newWidth,height); // setting new width here
CGRect viewFrame=viewForautoCompleteTableView.frame;
 viewFrame. size  = newSize;
 viewForautoCompleteTableView.frame=textFrame; // provide some animation if required 

}

注意: - 请确保您的视图已分配