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

Posted

技术标签:

【中文标题】ios/uipickerview:我如何获得美国各州的选择器视图【英文标题】:ios/uipickerview: How would I have a picker view for US states 【发布时间】:2015-03-22 15:47:02 【问题描述】:

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

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

提前感谢您的任何建议。

【问题讨论】:

【参考方案1】:

当您将 pickerView 放入 StoryBoard 中后,在您的 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 编辑

创建 outlet 和设置 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]);

【讨论】:

这段代码看起来很干净,有那么一会儿,直到我意识到它是 Swift 之前,它没有任何意义。看起来不错,所以我将其标记为正确,但实际上是在 Objective C 中工作。你能翻译成 Obj C 吗? 我已经添加了ObjectiveC代码,但是由于我不是在ObjC上工作,如果您发现任何语法错误,请告知。 我在 .xib 而不是 Storyboard 中工作,并且在运行时,我使用我的 pickerView 导航到该页面,它基于 scrollView 的问题而崩溃。有什么想法吗? 我会建议提出一个新问题,并提供详细信息,以便于理解和解决问题。

以上是关于ios/uipickerview:我如何获得美国各州的选择器视图的主要内容,如果未能解决你的问题,请参考以下文章

IOS7 UIPickerView如何隐藏选择指示器

iOS7 UIPickerView 的奇怪行为与 UIImage 作为自定义视图,任何官方信息?

世界上最受欢迎的在线课程 获得美国四个国家科学院院士的顶级课程 学会如何学习Learning How to Learn - Barbara Oakley

世界上最受欢迎的在线课程 获得美国四个国家科学院院士的顶级课程 学会如何学习Learning How to Learn - Barbara Oakley

世界上最受欢迎的在线课程 获得美国四个国家科学院院士的顶级课程 学会如何学习Learning How to Learn - Barbara Oakley

ios UiPickerView 与 CountryPicker 类