gpt4 book ai didi

ios - 当应用程序面向横向和纵向时更改不同的 self.view.backgroundColor 图像

转载 作者:行者123 更新时间:2023-11-28 19:03:13 25 4
gpt4 key购买 nike

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
if ((fromInterfaceOrientation == UIInterfaceOrientationPortrait) || (fromInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)) {
self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgImage.png"]];

}
else
{
self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgImage1.png"]];
}
}

当设备面向横向或纵向时,我使用上面的代码设置 self.view.backgroundColor 图像。图像正确更改。

问题:

  1. 当我尝试旋转设备时,图像没有快速变化,我的意思是需要 2 到 3 秒来改变图像。

  2. 如何根据横向或纵向设置self.view.backgroundColor图像。

最佳答案

请尝试以下操作:

答案 1:在您的 VC 的 willRotateToInterfaceOrientation:duration: 方法中执行。此方法是在界面方向发生变化时调用的动画方法,可以在背景图像之间实现平滑过渡。

答案 2:在 viewWillAppear:animated: 方法中使用所需图像设置您的 self.view.backgroundColor 并考虑 self.interfaceOrientation , 反射(reflect)了VC当前的界面方向。

理想情况下,您可以创建这样的方法:

-(void)setBackgroundForInterfaceOrientation:(UIInterfaceOrientation)orientation {
if (UIInterfaceOrientationIsLandscape(orientation)) {
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg-iphone3-landscape"]];
}
else {
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg-iphone3"]];
}
}

现在从任何一个地方调用这个方法:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self setBackgroundForInterfaceOrientation:toInterfaceOrientation];
}

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

[self setBackgroundForInterfaceOrientation:self.interfaceOrientation];
}

希望对您有所帮助。

关于ios - 当应用程序面向横向和纵向时更改不同的 self.view.backgroundColor 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837040/

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