如何区分一个页面上的多个uipickerviews [英] How to distinguish between multiple uipickerviews on one page

查看:32
本文介绍了如何区分一个页面上的多个uipickerviews的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • 我在一个 uiviewcontroller 中有 2 个 uipickerview:

dropdown_1.frame=CGRectMake(...);dropdown_2.frame=CGRectMake(...);

  • 对于这 2 个下拉菜单,我有 2 个不同的值数组
<块引用>

<代码>>arraySizes5 = [sverysmall, ssmall, snormal, slarge, sverylarge];>arraySizes3 = [ ssmall, snormal, slarge];

  • 我有这样的功能:

.

func numberOfComponentsInPickerView(pickerView: UIPickerView) ->整数{返回 1}func pickerView(pickerView: UIPickerView, numberOfRowsInComponent 组件: Int) ->整数{返回 arraySizes5.count;<<----- 如何区分??}func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent 组件: Int) ->细绳!{返回 arraySizes5[row]}

如何将相应的值添加到函数 pickerView 的 2 个下拉列表中?或者如果有帮助,我该如何设置组件 ID?

解决方案

您可以这样做:

导入 UIKit类 ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {@IBOutlet 弱变量 dropdown_1:UIPickerView!@IBOutlet 弱变量 dropdown_2:UIPickerView!var arraySizes5 = ["sverysmall", "ssmall", "snormal", "slarge", "sverylarge"]var arraySizes3 = ["ssmall", "snormal", "slarge"]覆盖 func viewDidLoad() {super.viewDidLoad()//在加载视图后做任何额外的设置,通常是从笔尖.}覆盖 func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()//处理任何可以重新创建的资源.}func numberOfComponentsInPickerView(pickerView: UIPickerView) ->整数{返回 1}func pickerView(pickerView: UIPickerView, numberOfRowsInComponent 组件: Int) ->整数{如果pickerView == dropdown_1 {返回 arraySizes5.count} else if pickerView == dropdown_2 {返回 arraySizes3.count}返回 0}func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent 组件: Int) ->细绳!{如果pickerView == dropdown_1 {返回 arraySizes5[row]} else if pickerView == dropdown_2 {返回 arraySizes3[row]}返回 ""}}

  • I have 2 uipickerviews in one uiviewcontroller:

dropdown_1.frame=CGRectMake(...); dropdown_2.frame=CGRectMake(...);

  • I have 2 different array of values for these 2 dropdowns

> arraySizes5 = [sverysmall, ssmall, snormal, slarge, sverylarge];

> arraySizes3 = [ ssmall, snormal, slarge];

  • I have function like :

.

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return arraySizes5.count;  <<----- How to differentiate ??
}

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

How can I add the corresponding values to the 2 dropdowns in the function pickerView ? Or how can I set the component ID if that helps ?

解决方案

Here is the way you can do it:

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    @IBOutlet weak var dropdown_1: UIPickerView!
    @IBOutlet weak var dropdown_2: UIPickerView!

    var arraySizes5 = ["sverysmall", "ssmall", "snormal", "slarge", "sverylarge"]
    var arraySizes3 = ["ssmall", "snormal", "slarge"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

        if pickerView == dropdown_1 {
            return arraySizes5.count
        } else if pickerView == dropdown_2 {
            return arraySizes3.count
        }
        return 0
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

        if pickerView == dropdown_1 {
            return arraySizes5[row]
        } else if pickerView == dropdown_2 {
            return arraySizes3[row]
        }
        return ""
    }
}

这篇关于如何区分一个页面上的多个uipickerviews的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆