0

我正在尝试为pickerView 中的每个组件创建一个带有固定标签的pickerView。我在 StackOverflow 中找到了这段代码。

var labelTexts = [“月”、“周”、“天”、“小时”、“分钟”]

let labelWidth = itemPicker.frame.width / CGFloat(itemPicker.numberOfComponents)

for index in 0..<labelTexts.count {
    let label = UILabel(frame: CGRect(x: itemPicker.frame.origin.x + labelWidth * CGFloat(index), y: 0, width: labelWidth, height: 20))
    label.text = labelTexts[index]
    label.textAlignment = .center
    itemPicker.addSubview(label)
}

它正在工作,但是一旦我改变了pickerView的宽度(起初它和superview一样宽),标签就开始改变它们的位置。我希望每个组件上方的每个标签都完全匹配。

我该如何解决?

编辑:我发现了问题。

而不是这样做 CGRect(x: itemPicker.frame.origin.x + labelWidth * CGFloat(index), ....))

我试过 CGRect(x: (itemPicker.frame.origin.x + labelWidth) * CGFloat(index), ...)) 注意括号,它可以工作..

4

0 回答 0