UIPickerView的组件宽度会在自定义时导致对齐问题

时间:2014-10-24 07:32:00

标签: ios objective-c swift uipickerview

我的UIPickerView与其superview具有相同的宽度。我希望能够更改组件/列的宽度:

func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {

    if component == 0 {

        return pickerViewHolder.bounds.width / 100 * 10

    } else if component == 1 {

        return pickerViewHolder.bounds.width / 100 * 45

    } else {

        return pickerViewHolder.bounds.width / 100 * 45
    }

}

使用该段代码,宽度显示为所需。但是组件行内的对齐方式存在差异。在viewForRow内,我设置NSTextAlignment.Left实际使用标准组件宽度的东西,或者 - 我在那里放了一个大问号 - 只有一些自定义值,如(15,30,30)或(30, 30,30)。但是如果我把上面的数字或其他总和小于100%的组合(如果那么重要)如(10,40,40)或(10,45,40)我仍然在所选行中得到正确的对齐但是上面和下面的对齐方式不同:

enter image description here enter image description here

我尝试在pickerView.setNeedsLayout()中调用pickerView.reloadAllComponents()viewWillAppear()等方法,但它没有什么区别。

0 个答案:

没有答案