Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS中隐藏或更改特定设备的布局_Ios_Objective C_Iphone_Swift - Fatal编程技术网

如何在iOS中隐藏或更改特定设备的布局

如何在iOS中隐藏或更改特定设备的布局,ios,objective-c,iphone,swift,Ios,Objective C,Iphone,Swift,我一直在开发主要针对iPhone5和iPhone6的应用程序,但当我在iPhone4S上测试时,一些布局变得混乱。如果用户从iPhone4S上查看主视图,我想在主视图中隐藏一些特殊的按钮和标签。有没有办法做到这一点?您可以获取设备类型并相应地隐藏一些UI元素 在viewDidLoad函数中,您可以执行以下操作 if(specificDeviceType){ someButton.hidden = YES; } 要获取设备类型,可以使用获取设备类型并相应地隐藏一些UI元素 在viewDidLoa

我一直在开发主要针对iPhone5和iPhone6的应用程序,但当我在iPhone4S上测试时,一些布局变得混乱。如果用户从iPhone4S上查看主视图,我想在主视图中隐藏一些特殊的按钮和标签。有没有办法做到这一点?

您可以获取设备类型并相应地隐藏一些UI元素

viewDidLoad
函数中,您可以执行以下操作

if(specificDeviceType){
someButton.hidden = YES;
}

要获取设备类型,可以使用

获取设备类型并相应地隐藏一些UI元素

viewDidLoad
函数中,您可以执行以下操作

if(specificDeviceType){
someButton.hidden = YES;
}

要获取设备类型,可以使用

如果在全局范围内声明这三个结构,则可以在项目中的任何位置使用它们

struct ScreenSize {
    static let SCREEN_WIDTH         = UIScreen.mainScreen().bounds.size.width
    static let SCREEN_HEIGHT        = UIScreen.mainScreen().bounds.size.height
    static let SCREEN_MAX_LENGTH    = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
    static let SCREEN_MIN_LENGTH    = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
}

struct DeviceType {
    static let IS_IPHONE_4_OR_LESS  = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
    static let IS_IPHONE_5          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
    static let IS_IPHONE_6          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
    static let IS_IPHONE_6P         = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
    static let IS_IPAD              = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0
}

struct OSVersion {
    static let SYS_VERSION_FLOAT = (UIDevice.currentDevice().systemVersion as NSString).floatValue
    static let iOS7 = (OSVersion.SYS_VERSION_FLOAT < 8.0 && OSVersion.SYS_VERSION_FLOAT >= 7.0)
    static let iOS8 = (OSVersion.SYS_VERSION_FLOAT >= 8.0 && OSVersion.SYS_VERSION_FLOAT < 9.0)
    static let iOS9 = (OSVersion.SYS_VERSION_FLOAT >= 9.0 && OSVersion.SYS_VERSION_FLOAT < 10.0)
}

如果在全局范围内声明这三个结构,则可以在项目中的任何位置使用它们

struct ScreenSize {
    static let SCREEN_WIDTH         = UIScreen.mainScreen().bounds.size.width
    static let SCREEN_HEIGHT        = UIScreen.mainScreen().bounds.size.height
    static let SCREEN_MAX_LENGTH    = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
    static let SCREEN_MIN_LENGTH    = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
}

struct DeviceType {
    static let IS_IPHONE_4_OR_LESS  = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
    static let IS_IPHONE_5          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
    static let IS_IPHONE_6          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
    static let IS_IPHONE_6P         = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
    static let IS_IPAD              = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0
}

struct OSVersion {
    static let SYS_VERSION_FLOAT = (UIDevice.currentDevice().systemVersion as NSString).floatValue
    static let iOS7 = (OSVersion.SYS_VERSION_FLOAT < 8.0 && OSVersion.SYS_VERSION_FLOAT >= 7.0)
    static let iOS8 = (OSVersion.SYS_VERSION_FLOAT >= 8.0 && OSVersion.SYS_VERSION_FLOAT < 9.0)
    static let iOS9 = (OSVersion.SYS_VERSION_FLOAT >= 9.0 && OSVersion.SYS_VERSION_FLOAT < 10.0)
}

如果使用Interface Builder,则可以根据应用程序应用不同的约束。但在你的情况下,这似乎是行不通的


这就是为什么您可以通过检测运行设备的模型,并根据它隐藏/显示UI元素。

如果您使用Interface Builder,您可以根据不同的应用程序应用不同的约束。但在你的情况下,这似乎是行不通的

这就是为什么您可以通过检测运行设备的模型,并根据它隐藏/显示UI元素。

之前添加此项包括
代码:
定义系统版本大于或等于(v)([[UIDevice currentDevice]systemVersion]比较:v选项:NSNumericSearch]!=sensorderescing)

现在,在
视图将加载
视图将出现
,添加以下代码:

   if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))//any version value you want
    {
[myButton setHidden:YES];
        }
将此添加到
#包括
代码:
#将系统版本定义为大于或等于(v)([[[UIDevice currentDevice]systemVersion]比较:v选项:NSNumericSearch]!=传感器解除搜索)

现在,在
视图将加载
视图将出现
,添加以下代码:

   if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))//any version value you want
    {
[myButton setHidden:YES];
        }