什么可能会阻止我的框架在方向更改时调整大小

时间:2014-08-08 14:47:55

标签: ios uiview orientation-changes

当我的设备更改方向时,我看到了我希望调整视图的日志事件,但是视图没有在视觉上更新。什么可能阻止此更新?下面是我收到方向通知更改时正在运行的代码。

- (void)interfaceOrientationDidChangeNotification:(NSNotification*)note
{
    UIInterfaceOrientation currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
    BOOL isLandscape;
    NSLog(@"Original Frame Size: %@", NSStringFromCGRect(self.baseView.frame));

    if((currentOrientation == UIInterfaceOrientationLandscapeLeft)
       || (currentOrientation == UIInterfaceOrientationLandscapeRight)){
        isLandscape = YES;
        [self.baseView setFrame:CGRectMake(100, 100, 310, 180)];
        [self updateTextFontSize:14 andXPosition:70];
        NSLog(@"In Landscape Mode Frame Size: %@", NSStringFromCGRect(self.baseView.frame));
    }else{
        NSLog(@"In portrait mode");
        [self.baseView setFrame:CGRectMake(100, 100, 610, 480)];
        [self updateTextFontSize:18 andXPosition:50];
        NSLog(@"In portrait mode Frame Size: %@", NSStringFromCGRect(self.baseView.frame));

    }

    [self.view setNeedsLayout];
}

我已经创建了一个示例项目,说明https://github.com/propstm/ViewResizeTest

提供的问题

1 个答案:

答案 0 :(得分:1)

这是因为您正在使用自动布局。使用自动布局时,您无法直接更改某些内容的框架;这是自动布局的工作。如果你试试,自动布局就会出现并改回来。您需要更改约束