如何通过button点击更改UIPickerView中的行的大小?
我试图这样做:调用reloadAllComponents:
当button被点击,但它没有调用rowHeightForComponent:
从文档中,它看起来像reloadAllComponents:
只是调用组件内的新数据的委托,但可能不会要求的大小。
相反,我会尝试在每个组件上调用rowSizeForComponent:
在这个方法的文档中,它说:“返回:给定组件中的行的大小,这通常是在组件中显示最大的string或视图所需的大小,一个select器视图获取这个属性通过调用pickerView:widthForComponent:和pickerView:rowHeightForComponent:delegate方法,并caching它,默认值是(0,0)。
然后,在你的UIPickerViewDelegate中,我将实现pickerView:widthForComponent:
和pickerView:rowHeightForComponent:
你不需要释放pickerView来设置新的单元格高度,比如@auspicious99
auspicious99。 相反,每次触发reloadAllComponents时,请设置委托或数据源:
pickerView.delegate = self; //or pickerView.dataSource = self; [pickerView reloadAllComponents];
为什么reloadAllComponents方法不触发rowHeightForComponent方法真的很奇怪,但是这看起来像是一个有效的解决方法,使用上面的技巧。
希望能帮助到你。
您可能需要释放UIpickerview,并在pickerView中使用适当的返回值创build另一个:rowHeightForComponent:
这似乎是一个痛苦,但我不能想到另一个解决scheme。
不幸的是,调用rowSizeForComponent似乎没有帮助,因为正如文档所说:“select器视图通过调用pickerView:widthForComponent:和pickerView:rowHeightForComponent:委托方法来获取此属性的值,并对其进行caching。 所以,调用rowSizeForComponent只提供caching的值,而不是调用pickerView:rowHeightForComponent:来获取新的值。