gpt4 book ai didi

iphone - 在 Objective-C 和 iOS 中合并项目范围定义的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 17:09:54 26 4
gpt4 key购买 nike

在我的例子中,我有一个高度自定义的 iPhone 应用程序,其中包含所有自定义 View 。我想利用 iPhone 5 的屏幕尺寸,但我的 View 需要精确布局,并且在我的 View 上设置 autoresizingMask 是不够的。

我希望在我的每个源文件中都有某种项目范围的定义标志,我需要在运行时设置这个定义/标志。在我的具体情况下,我也许可以像这样导入一些头文件定义:

if ( IS_IPHONE_5 ) {

/*
Set appropriate frames for the additional screen space
*/
}

else {

/*
Set views otherwise
*/
}

这个问题并不是完全主观的——它可以适用于任何想要设置和检索项目范围定义的人。也许另一种情况可能是颜色主题或可以在设置中更改的内容。

我如何在我的程序执行时设置这些定义以及我如何将它们合并到我的源文件中?

谢谢。

最佳答案

它可以像将宏放入您应用的 APPNAME_prefix.pch 文件一样简单:

#define IS_IPHONE_5 ([[UIScreen mainScreen]bounds].size.height == 568)

您的应用程序中的每个文件都可以使用它。

作为替代建议,我认为我的偏好是在 UIDevice 上添加一个类别,也许还添加一个宏以方便使用,然后只包含需要它的对象(即对象负责布局的 View 和 Controller 层)导入它,以避免将模型耦合到 UIKit

例如UIDevice+iPhone5.h:

#define IS_IPHONE_5 [[UIDevice currentDevice] isIPhone5]

@interace UIDevice (iPhone5)

- (BOOL)isIPhone5;

@end

UIDevice+iPhone5.m:

@implementation UIDevice(iPhone5Checking)

- (BOOL)isIPhone5
{
return ([[UIScreen mainScreen]bounds].size.height == 568); //or however else you want to check
}

@end

以最适合您的需求为准。希望这对您有所帮助!

关于iphone - 在 Objective-C 和 iOS 中合并项目范围定义的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654802/

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