gpt4 book ai didi

ios - 如何在旋转时重绘 View 布局?

转载 作者:行者123 更新时间:2023-11-29 02:57:31 26 4
gpt4 key购买 nike

我有一个 .h 文件,我正在使用我的项目,我 #import 该文件然后使用 #define vars 正确布局我的 View 。

这就是我的 ScreenSize.h 文件的样子。

#import <Foundation/Foundation.h>

#define ScreenWidth ((int) [UIScreen mainScreen].bounds.size.width)
#define ScreenHeight ((int) [UIScreen mainScreen].bounds.size.height)

@interface ScreenSize : NSObject

@end

我想知道用户何时浏览页面并且页面布局正确,然后他们决定旋转页面,如何使用正确的值更新 ScreenWidth 和 ScreenHeight,以及更新正在旋转的当前 View ?

最佳答案

这将更好地实现为静态方法,而不是#defines:

+(CGFloat)screenWidth
{
if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)){
return [UIScreen mainScreen].bounds.size.width;
}else{
[UIScreen mainScreen].bounds.size.height;
}
}

+(CGFloat)screenHeight
{
if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)){
return [UIScreen mainScreen].bounds.size.height;
}else{
[UIScreen mainScreen].bounds.size.width;
}
}

要知道屏幕何时旋转,您可以使用 NSNotificationCenter 订阅 UIApplicationWillChangeStatusBarOrientationNotificationUIApplicationDidChangeStatusBarOrientationNotification:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

并实现处理通知的方法:

-(void)didRotate:(NSNotification*)notification
{
// Layout your views
}

关于ios - 如何在旋转时重绘 View 布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728361/

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