gpt4 book ai didi

swift - 按字符数设置每个设备的框架 (CGRect) - Swift 3

转载 作者:行者123 更新时间:2023-11-30 12:17:29 27 4
gpt4 key购买 nike

我正在创建标签和字符,我想通过字符设置 UILabel 的框架(X、Y 和宽度),并且 Y 轴在所有设备上都是恒定的,那么如何设置 X 轴的中心并通过计数进行控制每个设备的字符数和宽度(50)变得越来越小?

这是我的代码:

func createTarget(id: Int) {

listdata = dbHelpr.getDatabase(rowId: id)

for data in listdata {

let lengthOfChar : CGFloat = data.ans.length
let targetSize : CGFloat = self.view.frame.width / 2
var xAxis : CGFloat = self.view.frame.width / 2 + 55
let yAxis : CGFloat = self.view.frame.height / 2 + 70
let targetLabel = UILabel(frame: CGRect(x: xAxis, y: yAxis, width: 50, height: 5))
xAxis -= 50 + (lengthOfChar)

}
}

enter image description here

在这张图片中是我的标签,它的位置是 iPhone 7 plus 模拟器的 X 轴中心,以及每个字符数的标签数量,所以我想要在所有设备和宽度中像这个位置(X、Y 和宽度)变得更小和最大,如果字符数例如为 9,它必须位于 X 轴的中心,宽度必须变得更小,并且在设备的左右两侧留出空间。

我该怎么做?!

谢谢:)

最佳答案

这是解决方案:

func createTarget(id: Int) {

listdata = dbHelpr.getDatabase(rowId: id)

for data in listdata {

let lengthOfChar : CGFloat = data.ans.length
let yAxis : CGFloat = self.view.frame.height / 2 + 70

let width: CGFloat = view.frame.size.width - 40 // frame width
var targetWidth: CGFloat = (width - (lengthOfChar - 1) * 5) / lengthOfChar

if targetWidth > 50 {
targetWidth = 50
}

let totalWidth: CGFloat = (targetWidth * lengthOfChar) + ((lengthOfChar - 5) * 5)

for (indexTar, tar) in data.ans.characters.enumerated() {

let x : CGFloat = (width / 2) - (totalWidth / 2)
let xx : CGFloat = (CGFloat(indexTar) * targetWidth) + (CGFloat(indexTar) * 5) + 20
var xAxis : CGFloat = (x + xx)
xAxis = width - xAxis

let targetLabel = UILabel(frame: CGRect(x: xAxis, y: yAxis, width: targetWidth, height: 5))

targetLabel.backgroundColor = .white
targetLabel.layer.masksToBounds = true
targetLabel.layer.cornerRadius = 5
targetLabel.text = String(describing: tar)
targetLabel.textAlignment = .center
targetLabel.textColor = .white
self.view.addSubview(targetLabel)

}

}

}

关于swift - 按字符数设置每个设备的框架 (CGRect) - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45209791/

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