【问题标题】:viewWillTransitionToSize and orientationviewWillTransitionToSize 和方向
【发布时间】:2018-02-06 10:37:02
【问题描述】:

如果我将属性添加到 UIViewController "myisLandscape" (BOOL) 每次调用 viewWillTransitionToSize 时我都会更新此属性

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{     
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    // will execute before rotation
    [coordinator animateAlongsideTransition:^(id  _Nonnull context) {

        self.myIsLandscape = (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]));

    } completion:^(id  _Nonnull context) {

        // will execute after rotation

    }];

}

除了这个方法,还有其他方法我需要更新 self.myIsLandscape 使其始终具有正确的值吗?

我需要这个属性来访问以从后台线程检查 UIViewController 的当前方向(我不想使用调度)

【问题讨论】:

    标签: ios objective-c uiviewcontroller


    【解决方案1】:
    - (void)viewWillTransitionToSize:(CGSize)size 
           withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
    

    此方法是 UIContentContainer 协议的一部分。该协议定义了根据大小变化重新设计视图控制器内容的方法。当您实现上述方法时,它会通知 View Controller 它的视图大小即将更改。

    因此,您所做的检查将始终返回正确的值。不用担心。

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 2017-12-24
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多