UIPickerView

时间:2016-10-15 09:55:33

标签: ios swift uipickerview

我尝试在UIPickerView中添加UIViewController并使用此代码在其中显示简单的项目:

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 3
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return 10
}

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
    let pickerLabel = UILabel()
    pickerLabel.textColor = UIColor.black
    pickerLabel.text = "10"
    pickerLabel.textAlignment = NSTextAlignment.center
    pickerLabel.sizeToFit()
    return pickerLabel
}

一切都很好但是当我将numberOfComponents更改为2选择器视图时没有显示正确。为什么会这样?(Xcode 8 iOS 10) with 2 component with 3 component

1 个答案:

答案 0 :(得分:1)

这里有两点需要注意:

  1. 您已使用:pickerLabel.sizeToFit(),可将标签大小调整为其内容。
  2. 接下来是您评论pickerLabel.sizeToFit()并为您的标签添加背景颜色。你会得到以下结果
  3. enter image description here

    正如您在此处所看到的那样,PickerView的曲率和单元格之间的距离导致了这个问题。所以解决方案是你可以给你的标签宽度和宽度;在测试结果时没有适合和应用背景的大小,并达到最佳组合。

    例如,检查iOS Native clock计时器:

    enter image description here

    “他们尝试过使用标签宽度和索引”

    请注意:

    曲率导致宽度减小,标签居中对齐,因此如果你得到我在这里想说的话,就会沿宽度减小的路径前进。

    这应该解释一下。

    干杯!