码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-02-27 17:16:06      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:ios8   swift   ui设计   pickerview   老虎机视图   

  老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值。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老虎机视图

标签:ios8   swift   ui设计   pickerview   老虎机视图   

原文地址:http://blog.csdn.net/cg1991130/article/details/43967159

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!