gpt4 book ai didi

ios - UIViewController 初始加载时高度错误

转载 作者:行者123 更新时间:2023-12-01 16:28:40 25 4
gpt4 key购买 nike

我在 iOS 7 和 8 上工作的应用程序在 iOS9 上遇到了一些小问题,其中一个是单个 View Controller 的高度错误。

以下代码:

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self layoutViews];
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[self layoutViews];
}

- (void)layoutViews {
NSLog(@"Size-> %@", NSStringFromCGRect(self.view.frame));
}

产生以下错误输出:
2015-11-06 22:42:31.737 app[62442:1136052] Size-> {{0, 0}, {375, 667}}
2015-11-06 22:42:33.318 app[62442:1136052] Size-> {{0, 32}, {667, 343}}
2015-11-06 22:42:34.885 app[62442:1136052] Size-> {{0, 64}, {375, 603}}
2015-11-06 22:45:18.063 app[62442:1136052] Size-> {{0, 32}, {667, 343}}

当我:
  • 竖向打开VC
  • 旋转到横向
  • 转回纵向
  • 转回横向

  • 似乎 VC 的初始负载在 self.frame.size 下提供了错误的大小。 , 而所有后续的旋转都是正确的。 603的高度是正确的,但是您可以看到,在两次旋转到横向时,它在 667 处仍然不正确。 .

    我认为与导航 Controller 栏有关的事情可能会破坏它。我在 viewDidLoad 中的代码方法很简单:
    - (void)viewDidLoad {
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
    [self setEdgesForExtendedLayout:UIRectEdgeNone];
    }

    [super viewDidLoad];
    }

    在 iOS 8 上运行良好。

    更新
    通过添加对 viewDidAppear 的调用来解决此问题:
    - (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self layoutViews];
    [activitiesTable flashScrollIndicators];
    }

    最佳答案

    您的代码是正确的,并且在第一次加载后它的工作完美。

    所以第一次加载应用程序的问题。

    Apple Document for Auto 布局提供了答案。

    您只需在 viewDidAppear: 中编写代码方法。

    所以从 viewDidLoad: 写你的代码方法

    -(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated]; }

    关于ios - UIViewController 初始加载时高度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575461/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com