ios/uipickerview: 我如何获得美国各州的选择器视图

ios/uipickerview: How would I have a picker view for US states

IOS 具有网络编程背景的新手。

在 html 中,我习惯使用 select 语句下拉带有州(即 AK、AL、CA、MA、NY、NJ 等)的框。使用 UIpickerview 的等效语法是什么?我知道如何将选择器视图放入情节提要中,但不知道如何让所有状态都显示在选择器中,然后捕获 selected 状态。

提前感谢您的任何建议。

在将 pickerView 放入故事板后,在 ViewController 中创建一个 IBOutlet,并创建一组状态

@IBOutlet weak var myPicker: UIPickerView!
var states = ["state1", "state2","state3"]
var selectedState = ""

设置 pickerView 的委托和数据源

override func viewDidLoad() {
    super.viewDidLoad()
    myPicker.dataSource = self
    myPicker.delegate = self
}

调用委托方法:

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return states.count
}

要将数据放入选择器中:

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
   return states[row]
}

并捕捉选中状态:

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
   selectedState = states[row]
}

编辑 ObjC

创建出口并为 pickerView 设置委托和数据源非常相似:以下是委托方法:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return ([states count]);
}

要将数据放入选择器中:

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return ([states objectAtIndex: row]);
}

并捕捉选中状态:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

selectedState = ([states objectAtIndex:row]);
}