将屏幕尺寸作为整数以Swift为单位



用于将元素随机定位在屏幕中,但在边界内,我需要在swift中的分辨率/屏幕大小。我已经用cggraphics筹集了如何获得它。不幸的是,我必须进行一些计算,并需要它作为UInt32类型,而不是CGFloat。我不能那样使用铸造。有什么想法吗?

let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
//What I want to do
let screenHeight = screenSize.height-arc4random_uniform(screenSize.height)

如果您想要元素的随机x和y位置,则可以做这样的事情:

let screenSize = UIScreen.main.bounds
let randomXPos = CGFloat(arc4random_uniform(UInt32(screenSize.width)))
let randomYPos = CGFloat(arc4random_uniform(UInt32(screenSize.height)))

Swift 4.2

let screenSize = UIScreen.main.bounds
let randomXPos = CGFloat.random(in: 0..<screenSize.width)
let randomYPos = CGFloat.random(in: 0..<screenSize.height)

在int中直接获取该值

var bounds: CGRect = UIScreen.mainScreen().bounds
    var w:Int  = Int(self.bounds.size.width)
    var h:Int  = Int(self.bounds.size.height)

您要做的就是将返回值从cgfloat转换为整数

使用以下代码获取屏幕高度宽度的值,然后将CGFloat转换为INT

var bounds: CGRect = UIScreen.mainScreen().bounds
var width:CGFloat = bounds.size.width
var height:CGFloat = bounds.size.height

Swift 4.2

let bounds: CGRect = UIScreen.main.bounds
let width:CGFloat = bounds.size.width
let height:CGFloat = bounds.size.height

您尝试这样的尝试

let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
let screenWidth = screenSize.width * 0.75

我认为这是您需要的:

let screenHeight = screenSize.height - CGFloat(arc4random_uniform(UInt32(screenSize.height)))

最新更新