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

swift UI专项训练15 PcikerView老虎机视图,第1张

概述  老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值。ios的闹钟选择时间的时候就是这么设计的。在storyboard中拖拽一个pickerview,显示如下: pickerView是没法选择默认值的,图中的几个字符都是和苹果相关的地名,如要设置我们只能去代码中设置。我们来做一个有三个部分的老虎机,每一部分下面有一个标签,来显示选中的内容。分别拖拽到控制器中建立联系: 然后回到story

老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值。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老虎机视图全部内容,希望文章能够帮你解决swift UI专项训练15 PcikerView老虎机视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存