如何在UIPickerview iOS swift中为组件赋予标题

时间:2018-02-05 18:39:46

标签: ios swift uipickerview

我想知道是否有可能像我在图片中给出的那样为每个组件提供标题?... Portrait mode

我已经通过添加标签作为子视图来设置标签,但我还必须以横向模式进行管理,所以这里是... landscape mode

那么,我的问题是可以从特定组件中获取所选标签的框架吗?我的意思是我可以在不添加子视图的情况下管理它,这样我就可以在所有设备和所有方向上管理这个标签。

谢谢!!!

1 个答案:

答案 0 :(得分:0)

关键是为所选行设置自定义标题 根据UIPickerView中的selectedRow函数,返回组件中的选定行。因此,您无需担心为该方向或手柄方向模式添加额外标签 尝试这样做(标题是您当前在每一行中显示的内容):

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        switch component {
        case 0:
            if self.yourPickerView.selectedRow(inComponent: 0) == row
            {
                return "\(title) Hour"
            }
            else
            {
                return title
            }
        case 1:
            if self.yourPickerView.selectedRow(inComponent: 1) == row
            {
                return "\(title) Min"
            }
            else
            {
                return title
            }
        case 2:
            if self.yourPickerView.selectedRow(inComponent: 2) == row
            {
                return "\(title) Sec"
            }
            else
            {
                return title
            }
        default:

            return ""
        }
    }  

最后在didSelectRow

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    // your code
    pickerView.reloadAllComponents()
}  

虽然这不是最好的方式(我猜),但它肯定比放置单独的标签和处理方向更好。