iOS对不同设备的不同限制 [英] iOS different constraints for different devices

查看:111
本文介绍了iOS对不同设备的不同限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个专为iPhone SE设计的ViewController

I have a ViewController designed for iPhone SE

如您所见,我也有一个约束Align Top to: Safe Area Equals 75

As you can see I also have a constraint Align Top to: Safe Area Equals 75

问题是,是否可以为iPhone 8和iPhone 8 Plus更改此值?例如:

The question is, is it possible to change this value for iPhone 8 and iPhone 8 Plus? For example:

  • SE = 75
  • 8 = 85
  • 8加= 105

推荐答案

我们面临着类似的问题.我们通过名为scaled的帮助器类解决了.基本上,它们只是乘以某物的大小,在较大的设备上应该看起来更大.

we were facing similar issue. We solved with helper class called scaled. Which basically just multiply size of something, which should appear larger on larger device.

extension CGFloat {
    public var scaled: CGFloat {
        switch UIDevice.type.getResolutionGroup()! {
        case .lr320x568:
            return self
        case .lr375x667:
            return self * 1.1
        case .lr414x736:
            return self * 1.2
        case .lr768x1024:
            return self * 1.3
        // For iPads
        case .lr1024x1366:
            return self * 1.3
        }
    }
}

解决小组的实施

public func getResolutionGroup() -> ResolutionGroup? {
        switch self {
        case .iPhone5, .iPhone5C, .iPhone5S, .iPhoneSE, .iPodTouch5, .iPodTouch6:
            return .lr320x568
        case .iPhone6, .iPhone6S, .iPhone7:
            return .lr375x667
        case .iPhone6Plus, .iPhone6SPlus, .iPhone7Plus:
            return .lr414x736
        case .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4:
            return .lr768x1024
        case .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2:
            return .lr768x1024
        case .iPadPro:
            return .lr1024x1366
        case .simulator:
            return isiPhone() ? .lr320x568 : .lr768x1024
        default:
            return .lr320x568
        }
    }

应用程序中的使用情况

fileprivate let footerHeight = CGFloat(180).scaled

这篇关于iOS对不同设备的不同限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆