UIPickerView - 改变组件宽度
Posted
技术标签:
【中文标题】UIPickerView - 改变组件宽度【英文标题】:UIPickerView - changing component width 【发布时间】:2010-08-10 16:25:00 【问题描述】:在我的 iPhone 应用程序中,我想要一个包含 2 个组件的 UIPickerView。最初,左栏是宽的,右栏是窄的,以使左侧的文本易于阅读,以便从中进行选择。
选择此列后,用户将单击右列从中选择一个项目:发生这种情况时,我想调整列的大小,使左列变窄,右列变宽,以便所有文本可以阅读。
我一直在试验“pickerView widthForComponent”,但这似乎只在最初加载视图时才被调用。
有什么方法可以动态调整列的大小?
谢谢
【问题讨论】:
请参阅更新的答案。 所以,是时候接受答案了,因为它是一个正确的解决方案;) 【参考方案1】:您可以使用 [pickerView reloadAllComponents]。
更新:
这很奇怪。您也可以尝试查看以下solution。
【讨论】:
我试过了,但 'pickerView widthForComponent' 没有被再次调用。 嗨,Kovpas - 非常感谢!该解决方案可以解决问题:-)在'didSelectRow'中添加“self.pickerView.delegate = nil; self.pickerView.delegate = self;”重置选取器的委托会导致组件宽度被重绘。【参考方案2】:仅重新加载是行不通的。您还需要调用 setNeedsLayout
[pickerView reloadAllComponents];
[pickerView setNeedsLayout];
【讨论】:
以上是关于UIPickerView - 改变组件宽度的主要内容,如果未能解决你的问题,请参考以下文章
触摸 UITextField 时设置 UIPickerView 的默认值
在iphone中动态设置UIPIckerView高度宽度[重复]