我们如何才能实现这种类型的选择值在 UIPickerView 中以分钟和秒来更改???
2 回答
首先,您使用pickerView:viewForRow:inComponent:reusingView:
数据源方法返回“00”标签。这实际上有点棘手,因为pickerview 将更改此视图的框架以填充行。这意味着您必须将正确定位的视图嵌入到另一个视图中,然后返回该容器视图。
至于标签,这些只是UILabel
已正确定位并添加为pickerview本身的子视图的对象。
为了让它们正确更新,只需在pickerView:didSelectRow:inComponent:
方法中更改它们的标题。
这正是UIDatePicker
正在做的事情。
您应该实施UIPickerViewDelegate Protocol
and UIPickerViewDataSource Protocol
。
在方法中- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
只返回必要的标题。
您还可以在 的valueChanged
事件上添加委托人UIPickerView
。每次更改值时,您都可以重新加载所有可见行并在正确的位置设置标签分钟和秒。
Oooor 您可以UILabel
在黑线上添加 2 秒的子视图。
Oooor 您可以使用带有标签的黑色渐变线添加子视图mins
和secs
.
然后使用方法:- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
您可以设置适当的列宽度。