swift UI专项训练41 用纯代码的方式实现stepper的值传递

之前讲过通过storyboard的方式捕获控件的值,现在我们来试试通过纯代码的方式来实现同样的功能。首先定义一个stepper和一个label,用label来显示stepper的当前值。

 self.priceStepper = UIStepper(frame: CGRectMake(150, 120, 100, 20))
        self.priceStepper.minimumValue = 100//最小值
        self.priceStepper.maximumValue = 2000//最大值
        self.priceStepper.stepValue = 100//步长
        self.priceStepper.tintColor = UIColor.orangeColor()
        self.priceStepper.addTarget(self, action: "showPrice:", forControlEvents: UIControlEvents.ValueChanged)
        dialogContainer.addSubview(priceStepper)

我们使用了addTarget的方式,这跟之前在storyboard中拖动stepper的action中的ValueChanged是一样的,我们给这个步进器增加了一个addTarget,对象是它自己,捕获的是stepper值的变化,每当我们点击+或者-的时候,就会触发这个方法。方法捕获了ValueChanged后,调用了一个action:showPrice。showPrice的代码如下:

 func showPrice(sender:UIStepper!){
    self.tasteLabel.text = "消费上限: \(Int(self.priceStepper.value))"
    }

tasteLabel是我们之前定义的用来显示stepper的值的,代码如下:

self.tasteLabel = UILabel(frame: CGRectMake(20, 130, 120, 10))
       // self.tasteLabel.textAlignment = NSTextAlignment.Center
        self.tasteLabel.font = UIFont.boldSystemFontOfSize(17)
        self.tasteLabel.text = "消费上限: 100"
        dialogContainer.addSubview(self.tasteLabel)

运行效果如下,初始状态:

点击stepper后label中的值会发生变化:

时间: 2024-10-08 11:13:04

swift UI专项训练41 用纯代码的方式实现stepper的值传递的相关文章

swift UI专项训练38 用代码实现滚屏ScrollView

有时候我们在一个页面中放不下所有内容,就需要用到ScrollView,多余的内容可以通过滚动来获取. 首先定义一下宽和高,便于设备配适. let pageWidth = 320 let pageHeight = 800 然后在viewDidLoad中初始化一个scrollView: var scrollView = UIScrollView() scrollView.frame = self.view.bounds scrollView.contentSize=CGSizeMake(CGFloa

swift UI专项训练25 网址输入完毕事件

首先我们运行一下上一话中写好的程序看看有什么问题. 我们发现点击return是没有反应的,这是因为我们之前设置了文本框为这个界面的第一反应者,我们要得到键盘的返回必须对键盘做一些操作.从textfield入手,添加一个方法: func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() return true } 这是一个点击返回按钮输入框消失的方法,其中在返回之前我们要

Swift UI专项训练7 数据添加

上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好 import Foundation class Restaurant { var name = "" var location = "" var score = 10 } 我简单建一个类,分别代表餐馆名字.餐馆位置和餐馆评分,它们都有默认值. 然后我们回到餐馆排行的控制器中新建一个餐馆的数组.

swift UI专项训练39 用Swift实现摇一摇功能

微信的摇一摇功能想必大家都用过,过春节的时候抢红包也没少摇吧,那么用swift语言怎样实现这么酷炫的功能呢.摇动属于IOS内置可识别的一种动作,在你须要实现摇动功能的viewcontroller中.在viewDidLoad方法中增加下面代码: UIApplication.sharedApplication().applicationSupportsShakeToEdit = true self.becomeFirstResponder() 第一句是要求当前页面支持对摇动事件可编辑的支持,设置为t

swift UI专项训练12 ActivityIndicator

有时候我们的APP需要联网或者其他比较耗时的操作,需要给用户提示,提示的好办法是进度条或者一个转圈的齿轮,提示用户有操作在进行.我们在上一话的场景中增加两个按钮,下载和停止,点击下载齿轮就开始转,点击停止就停止. 然后把这个组件拖到我们的场景中 设置格式: 效果如图: 把按钮和齿轮连线到控制器中: @IBOutlet weak var loading: UIActivityIndicatorView! @IBAction func stopButton(sender: UIButton) { }

swift UI专项训练30 Segmented Control段控件

有时候我们需要给页面分段,也就是分组.基类是UISegmentedControl,下面展示它的属性: 基本上就是几段,段的标题,每一段的图像.现在我们来拖动一个段,默认的是两段,把它的段数设定为3,给第三段命名. 段的事件是这个段发生了切换,valueChanged事件.现在让我们来实现一下,往界面中拖一个label,让段切换的时候,label中显示段的标题. 和上一话中的方法类似,label拖拽到控制器中,然后把segment的事件value changed也拖拽到控制器中. 然后把操作的代码

swift UI专项训练23 设置委托和键盘返回

前几话中我们搞定了布局,这一话我们首先要把引用全部加上,就是连线到控制器中 UIViewController { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var web1: UIWebView! 然后就是代理,首先来看一下我们手机场景界面上的三个按钮: 第一个按钮是控制器本身,第二个按钮是这个界面的第一反应者,我们这个界面的第一反应者是网址这个框,第三个按钮是退出. 我们选择代理的时候也可以通过连线的方式,只需要把de

swift UI专项训练17 SearchBar搜索条

搜索栏算是UI中很简单的一个操作了,拖一个搜索栏上来. 搜索栏中比较重要的属性是占位符,也就是图中右侧的Placeholder,比如输入"请输入关键字",显示如下: 这一项是设置背景颜色: Options选项会对搜索框进行一些调整: 比如我们选择第一项,会显示出一个下拉箭头: 接下来看这部分: 这个里面有一些很有意思的选项,比如这个Keyboard Type,当我们在网页输入的时候要输入汉字和数字,当我们输入电话号码的时候只能输入数字,就是用这个选项. 还有这个Return Key,我

Swift UI专项训练1 交互

我们都知道在IOS界面编程的时候有IBOutlet和IBAction,前者是引用后者是操作,IBAction有一个参数sender,用来指向操作对象,之前我发布的天气预报的小程序那一话可以看到,如果我们需要一个按钮的点击事件的话那就使用IBAction,如果是一个Label要显示东西的话那就用IBOutlet. 现在来讲一下IBAction中的一些事件类型: 1.Touch Down Inside:触碰,只要我们碰到不动就算触发了事件 2.Touch Up  Inside:抬离,和1不同的是,触