老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值。ios的闹钟选择时间的时候就是这么设计的。在storyboard中拖拽一个pickerview,显示如下:


pickerView是没法选择默认值的,图中的几个字符都是和苹果相关的地名,如要设置我们只能去代码中设置。我们来做一个有三个部分的老虎机,每一部分下面有一个标签,来显示选中的内容。分别拖拽到控制器中建立联系:



然后回到storyboard中,选中pickerview,把右侧的outlets与viewcontroller连接起来:


那么数据从哪来呢,我们回到代码中,首先依旧需要手动把继承的协议加上:

class ViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate 

加上之后你会发现会报错,那是因为你光继承却没有实现它的回调方法,就像tableView一样,如果控制器继承了数据源,那么就必须实现那些规定行数等等的方法。

先来定义一个显示内容的数组:

let citys = ["北京","上海","广州"]
然后定义回调方法:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return citys.count
    }
    
    func pickerView(pickerView: UIPickerView,numberOfRowsInComponent component: Int) -> Int {
        return citys.count
    }
    
    func pickerView(pickerView: UIPickerView,titleForRow row: Int,forComponent component: Int) -> String! {
        return citys[row]
    }

分别代表有三个部分,每个部分三行,每行的标题。运行效果如下:



现在我们来加上标签的现实功能,让它们显示我们在老虎机中选择的城市:

 func pickerView(pickerView: UIPickerView,didSelectRow row: Int,inComponent component: Int) {
        switch component{
        case 0: label0.text = citys[row]
        case 1: label1.text = citys[row]
        default:label2.text = citys[row]
        }
    }//选择了哪一行哪一部分

效果如图:

swift UI专项训练15 PcikerView老虎机视图的更多相关文章

  1. ios – 将图像图标添加到UIPickerView行

    我看了看网上的内容并没有找到太多!我想知道你如何将图像放在UIPicker中,以便每个行都有不同的图像.解决方法

  2. ios – 减少UIPickerView组件之间的空间

    我想减少UIPickerView中不同组件之间的空间.实际上我想构建一个类似于iPhone手表中的Timer的选择器视图.我相信有4个组成部分.首先是小时组件(0,1,2…….59),第四个是小组件.如何增加小时和分钟组件之间的比较空间.我不想在每小时值和每分钟值使用小时和分钟.解决方法您必须使用widthForComponent委托方法.以下是Swift的一个例子.找到objective-c等价物.

  3. UIPickerView具有iOS7中的自定义视图

    我有一个带有UIPickerView的应用程序.我使用该方法返回自定义视图它在iOS6中看起来很好.在iOS7中,没有太多的屏幕截图如下.请注意,在没有焦点的单元格中,第二列和第三列重叠.中央排是正确的.有什么建议么?解决方法看来,出于奇怪的原因,如果任何列的宽度都高于选择器视图宽度的1/3,则布局会中断.所以如果你有一个320像素宽的选择器视图106或更少正在工作,但是107或更高版本是错误的,无论你是否有2,3,4…

  4. iOS – 填充静态UIPickerView

    我有一个配置文件表单作为iOS应用程序注册过程的一部分.我想使用一个“下拉”菜单,如性别,标题,dob等项目.每个数据将是静态的–我将使用UIPickerView实现–但我的问题是–我需要创建数组和数据委托来填充每个单独的选择器,还是有一个更简单的方法来应用静态数据?解决方法没有代表你可以做吗?

  5. ios – 以编程方式创建和显示UIPickerView

    我试图以编程方式创建UIPickerView并将其显示为文本字段的firstResponder,但是,选择器视图未显示.textField连接到接口构建器中的对象,但是正在以编程方式创建pickerView.为什么我在运行应用程序时看不到这个pickerView?

  6. ios – 从外部类管理UIPickerView – 使用Swift

    我似乎无法找到一个外部类管理ViewController中的视图的连接.我是iOS的新手,并且花了很多时间寻找解决方案.简单示例:UIPickerView的子类我创建了一个文件,它是UIPickerView的子类,并使其符合PickerView委托和数据源.主视图控制器,带PletView的插座在我的MainViewController中,我为我的选择器视图创建了一个插座.另外,在StoryBoard中,我将我的PickerView的“自定义类”连接到上面的MyPickerView.我的问题:>如何告诉我

  7. swift UI专项训练15 PcikerView老虎机视图

    在storyboard中拖拽一个pickerview,显示如下:pickerView是没法选择默认值的,图中的几个字符都是和苹果相关的地名,如要设置我们只能去代码中设置。分别拖拽到控制器中建立联系:然后回到storyboard中,选中pickerview,把右侧的outlets与viewcontroller连接起来:那么数据从哪来呢,我们回到代码中,首先依旧需要手动把继承的协议加上:加上之后你会发现会报错,那是因为你光继承却没有实现它的回调方法,就像tableView一样,如果控制器继承了数据源,那么就必

  8. Swift 简单控件示例:选择器UIPickerView

    转载请声明出处:http://www.jb51.cc/article/p-bwzyycke-ga.html---------------------------------------------------------------------------------------------------------------------------------------------------

  9. UI基础控件 Swift

  10. 使用UIPickerView实现简单的城市选择器

    UIPickerView是apple提供的选择器控件,可以根据业务需求生成单列或多列的选择器.下面举例实现一个”省份-城市”联动的两列选择器.查看源码(oc+swift)效果图数据源格式因为只是一个简单的示例,所以在网上随便找了一个plist文件,数据格式截图如下:实现思路与UITableView一样,UIPickerView需要开发者实现其UIPickerViewDataSource和UIPic

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部