如何使用[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(targetMethod:)
userInfo:nil
repeats:NO]
更改视图控制器的颜色,
当从纵向到倒置肖像的方向发生变化时?
随机颜色的方法:
self.view.backgroundColor = self.randomColor;
答案 0 :(得分:1)
你必须使用
-(void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
//you can try somethign like
if ([UIDevice currentDevice].orientation==UIInterfaceOrientationMaskPortraitUpsideDown) {
self.view.backgroundColor=[UIColor greenColor];
}
}
通知容器其视图的大小即将更改。
每当您旋转设备时,该方法都会触发。
答案 1 :(得分:1)
过去情况是UIViewController
具有可以覆盖以检测方向变化的方法(例如willRotateToInteraceOrientation:duration:
)。所有这些都已被弃用,因为Apple希望开发人员不要担心方向,并且更多地考虑UIViewController
必须使用的容器的特征和大小。
因此,此时的最佳做法可能是实施viewWillTransitionToSize:withTransitionCoordinator:
并在此方法中更改背景颜色。
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
self.view.backgroundColor = [self randomColor];
}
或者在Swift中:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
self.view.backgroundColor = self.randomColor()
}