打开Landscape时获得正确的UIView大小

时间:2014-02-21 15:04:01

标签: ios uiview landscape

我有一个 UITextView ,纵向大小为500px宽 我通过代码添加它作为子视图,但如果应用程序以横向模式打开,我无法在viewdidapper中获得正确的大小。
设备旋转后,它工作正常。如果打开景观没有。 打开横向时如何计算此textview的正确尺寸?

谢谢

1 个答案:

答案 0 :(得分:-1)

在viewWillAppear函数中添加通知程序

    -(void)viewWillAppear:(BOOL)animated{
    [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)  name:UIDeviceOrientationDidChangeNotification  object:nil];
}

方向更改通知此功能

- (void)orientationChanged:(NSNotification *)notification{
[self adjustViewsForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
}

并计算textView的大小

- (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation {

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) 
{ 
    //calculate the portrait textView size   
}
else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) 
{
    //calculate the landscape textView size  
}}

我希望这个帮助