如何在 UIPickerview iOS swift 中为组件赋予标题
Posted
技术标签:
【中文标题】如何在 UIPickerview iOS swift 中为组件赋予标题【英文标题】:How to Give title to the component in UIPickerview iOS swift 【发布时间】:2018-02-05 18:39:45 【问题描述】:我想知道是否可以像我在图片中给出的那样为每个组件赋予标题?...Portrait mode
我已经通过将标签添加为子视图来设置标签,但我还必须在横向模式下对其进行管理,所以这里是...landscape mode
所以,我的问题是可以从特定组件中获取所选标签的框架吗?我的意思是我可以在不添加子视图的情况下管理它,因此我可以在所有设备和所有方向上管理这个标签。
谢谢!!!
【问题讨论】:
检查我的答案。关键是使用 UIPickerView 的 selectedRow 函数 【参考方案1】:关键是为所选行设置自定义标题。 根据 UIPickerView 中的 selectedRow 函数,您将返回组件中的选定行。因此,您无需担心为此添加额外的标签或处理方向模式。 尝试这样做(title 是您当前在每一行中显示的内容):
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()
虽然这不是最好的方法(我猜),但肯定比放置单独的标签和处理方向要好。
【讨论】:
我已经尝试过这个解决方案,但是向上滚动时会产生奇怪的效果。 什么样的效果?以上是关于如何在 UIPickerview iOS swift 中为组件赋予标题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 应用程序中通过 UIPickerView 实现视图之间的转换?
ios/uipickerview:我如何获得美国各州的选择器视图
如何在 iOS Swift 3 中滚动到 UIPickerView 中的特定行