【问题标题】:UIPickerView - changing component widthUIPickerView - 改变组件宽度
【发布时间】:2010-08-10 16:25:00
【问题描述】:

在我的 iPhone 应用程序中,我想要一个包含 2 个组件的 UIPickerView。最初,左栏是宽的,右栏是窄的,以使左侧的文本易于阅读,以便从中进行选择。

选择此列后,用户将单击右列从中选择一个项目:发生这种情况时,我想调整列的大小,使左列变窄,右列变宽,以便所有文本可以阅读。

我一直在试验“pickerView widthForComponent”,但这似乎只在最初加载视图时才被调用。

有什么方法可以动态调整列的大小?

谢谢

【问题讨论】:

  • 请参阅更新的答案。
  • 所以,是时候接受答案了,因为它是一个正确的解决方案;)

标签: iphone cocoa-touch uipickerview


【解决方案1】:

您可以使用 [pickerView reloadAllComponents]。

更新:

这很奇怪。您也可以尝试查看以下solution

【讨论】:

  • 我试过了,但 'pickerView widthForComponent' 没有被再次调用。
  • 嗨,Kovpas - 非常感谢!该解决方案可以解决问题:-)在'didSelectRow'中添加“self.pickerView.delegate = nil; self.pickerView.delegate = self;”重置选取器的委托会导致组件宽度被重绘。
【解决方案2】:

仅重新加载是行不通的。您还需要调用 setNeedsLayout

[pickerView reloadAllComponents];
[pickerView setNeedsLayout];

【讨论】:

    猜你喜欢
    • 2012-03-17
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多