我正在尝试为 UIPicker 找到一种方法,使其具有 3、6、12、24、36、46、72 选项。这样用户就可以从该集中选择选项。但是 UIPicker 必须带有一个从 1 开始并通过上述设置进行的旋转轮默认值。
因此,选择此选项最终应将所选数量放入购物车。
我正在尝试为 UIPicker 找到一种方法,使其具有 3、6、12、24、36、46、72 选项。这样用户就可以从该集中选择选项。但是 UIPicker 必须带有一个从 1 开始并通过上述设置进行的旋转轮默认值。
因此,选择此选项最终应将所选数量放入购物车。
这是你需要做的。在具有您需要实现的选择器的文件的 .hUIPickerViewDataSource
中UIPickerViewDelegate
:
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
然后,您需要将 UIPicker 的 DataSource 和 Delegate 连接到文件的所有者。然后你需要实现这些方法,我让你开始使用它们。
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 1;
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return self.myArray.count;
}
// getting the selected row and therefore the selected value
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.selectedValue = [self.myArray objectAtIndex:row];
}
// The text displayed in each picker view
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [self.myArray objectAtIndex:row];
}
// Properties used in the above code.
// myArray is the array with the values you want in it, so you could make it a property do lazy loading
@property (strong, nonatomic) NSArray *myArray;
- (NSArray *)myArray {
if (!_myArray) _myArray = [NSArray arrayWithObjects:@"1", @"3", @"6", ..., nil];
return myArray;
}
// selectedValue is an NSString of the current number selected
@property (strong, nonatomic) NSString *selectedValue;
我刚刚在 StackOverflow 中对此进行了编码,因此如果有任何语法错误,我深表歉意。