-2

我正在使用 Xcode 11.4 制作我的第一个 IOS 应用程序。该应用程序的想法非常简单,因为我仍然处于学习阶段。基本上,这个概念是冰块随机消失,然后在点击它们时重新出现,目的是点击在时间用完之前已经消失的块,并且随着每个连续的级别消失更多的块。为了清楚起见,我在故事板的下方添加了图片。故事板图片 当我使用 iphone 11 pro max 模拟器运行该应用程序时,该应用程序可以工作,但我的问题是它不适合较小设备的屏幕。由于所有的冰块都是图像,我尝试添加各种约束以使它们适合,但是这些都没有使我的图像失真并且经常出现在视图之外。我不确定如何正确添加约束,或者这是否是正确的继续方式,任何帮助将不胜感激。

4

2 回答 2

2

您还可以使用“Vary for traits”xCode 工具来设计不同宽度/高度比的应用程序。
请看图片:

在此处输入图像描述

于 2020-06-18T05:22:09.353 回答
0

您还可以根据设备设置以编程方式更改约束常量

1 创建将检测您当前设备的“设备”结构

struct Device {
static let IS_IPAD             = UIDevice.current.userInterfaceIdiom == .pad
static let IS_IPHONE           = UIDevice.current.userInterfaceIdiom == .phone
static let IS_RETINA           = UIScreen.main.scale >= 2.0

static let SCREEN_WIDTH        = Int(UIScreen.main.bounds.size.width)
static let SCREEN_HEIGHT       = Int(UIScreen.main.bounds.size.height)
static let SCREEN_MAX_LENGTH   = Int( max(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let SCREEN_MIN_LENGTH   = Int( min(SCREEN_WIDTH, SCREEN_HEIGHT) )

static let IS_IPHONE_4              = IS_IPHONE && SCREEN_MAX_LENGTH <= 480 // 2, 3, 3GS, 4, 4S
static let IS_IPHONE_5              = IS_IPHONE && SCREEN_MAX_LENGTH == 568 // 5, 5S, 5C, SE
static let IS_IPHONE_6              = IS_IPHONE && SCREEN_MAX_LENGTH == 667 // 6, 6S, 7, 8
static let IS_IPHONE_6P             = IS_IPHONE && SCREEN_MAX_LENGTH == 736 // 6+, 6S+, 7+, 8+
static let IS_IPHONE_XS             = IS_IPHONE && SCREEN_MAX_LENGTH == 812 // X, XS, 11 Pro
static let IS_IPHONE_XS_MAX         = IS_IPHONE && SCREEN_MAX_LENGTH == 896 // XR, XS Max, 11, 11 Pro Max
static let IS_IPAD_PRO_11           = IS_IPAD && SCREEN_MAX_LENGTH == 1024 // iPad Pro 11"
static let IS_IPAD_PRO_13           = IS_IPAD && SCREEN_MAX_LENGTH == 1366 // iPad Pro 12.9"
}

2 为您的约束创建 IBOutlet

@IBOutlet private weak var myConstraint: NSLayoutConstraint!

3 根据当前设备以编程方式设置 constraint.constant

if Device.isIphone5 {
    myConstraint.constant = 10 
}
于 2020-05-20T13:04:55.227 回答