从零开始学ios开发(五):IOS控件(2),Slider
下面继续学习ios的其他控件,这次会使用到的控件有Slider,当然还有一些之前已经使用过的控件Label。
这次我们不新建一个project了,当然如果你愿意重新创建一个新的项目也完全可以,我们还是使用上一篇的项目Control Fun。
上一篇中,我们最后的成果如下图所示
我们添加了一个ImageView,2个Label和2个TextField,现在我们继续在此基础上添加其他的控件。
1)添加Slider和Label
Slider类似于一个滑块,左右(或者上下)滑动来改变数值,在object library中找到Slider
拖动到界面中,并将其拉伸到你所喜欢的长度如下图
2)设置Slider的属性
选中Slider的情况下,查看attributes inspector,在attributes inspector中的Slider栏下有几个数值需要注意,看下图
其中1表示Slider的滑块滑到最左边时的数值(最小值),100表示Slider的滑块滑到最右边时的数值(最大值),50表示Slider的初始值,设置完成后,slider控件会根据设置的值自动调整位置。
3)添加Label
在slider的边上添加一个Label控件,用来显示slider的当前值,添加完成后的样子如下图
i)为了界面布局的统一性,把新添加的label和上面的2个label以右边为基准对齐(同时选中3个Label,然后选中菜单栏中的Editor>Align>Right Edges,或者快捷键command + ])。
ii)将label的内容改成50(选中label后,单击键盘上的return键),和slider的初始值一致。
iii)在attributes inspector中找到Alignment,使label文字右对齐。
iv)务必使新添加的label的长度大于50,因为slider的最大值为100,因此如果label长度和50一直,当slider的滑块移动到最右边时,label会显示不下。
好了,label的属性也设置完成了,下面开始添加Outlet和Action。
4)为Label添加Outlet,为Slider添加Action
因为当我们滑动slider时,label会实时显示slider的当前值,为了能够改变label的值,我们需要一个Outlet来指向label,然后使用Outlet来改变label的值。
添加的方法很简单,选中label,按住control键拖到BIDViewController.h中,在弹出的框框里,为Outlet取一个名字叫做sliderLabel,单击return,完成添加。
添加Action,鼠标选中slider,按住control键拖到BIDViewController.h中,在弹出的框框里,将Connection改成“Action”,为Action取一个名字叫做sliderChanged,单击return,完成添加。
注意上图中的Event选项,这里选的“Value Changed”,也就是说当滑块的位置发生改变时,就会触发之歌Action。
添加完的BIDViewController.h如下:

#import <UIKit/UIKit.h> @interface BIDViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UITextField *numberField;
@property (weak, nonatomic) IBOutlet UILabel *sliderLabel; - (IBAction)textFieldDoneEditing:(id)sender; - (IBAction)backgroundTap:(id)sender; - (IBAction)sliderChanged:(id)sender; @end

BIDViewController.m如下:

#import "BIDViewController.h" @implementation BIDViewController
@synthesize nameField;
@synthesize numberField;
@synthesize sliderLabel; ...... - (IBAction)sliderChanged:(id)sender {
}

5)添加code
在sliderChanged添加如下code
- (IBAction)sliderChanged:(id)sender {
UISlider *slider = (UISlider *)sender;
int progressAsInt = (int)roundf(slider.value);
sliderLabel.text = [NSString stringWithFormat:@"%d", progressAsInt];
}
代码还是很好理解的,当滑块位置发生改变时,触发sliderChanged,在sliderChanged中,将sender转换成UISlider对象,然后获取滑块位置的当前值,然后将当前值赋给label。
6)编译运行
command+B编译
command+R运行
正常情况下程序不会有任何问题,iphone模拟器将会运行起来,然后滑动滑块,label的值会随着滑块位置的不同而跟着改变。
程序运行的初始画面
滑动滑块,label值随之改变。
从零开始学ios开发(五):IOS控件(2),Slider的更多相关文章
- IOS开发中设置控件内容对齐方式时容易混淆的几个属性
IOS开发中四个容易混淆的属性: 1. textAligment : 文字的水平方向的对齐方式 1> 取值 NSTextAlignmentLeft = 0, // 左对齐 NST ...
- iOS 开发 ZFUI framework控件,使布局更简单
来自:http://www.jianshu.com/p/bcf86b170d9c 前言 为什么会写这个?因为在iOS开发中,界面的布局一直没有Android布局有那么多的方法和优势,我个人开发都是纯代 ...
- iOS开发基础-UITableView控件简单介绍
UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动. UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么 ...
- IOS开发自定义CheckBox控件
IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #imp ...
- iOS开发无第三方控件的援助达到的效果侧边栏
最近的研究iOS程序侧边栏.渐渐的发现iOS该方案还开始采取风侧边栏格该,QQ,今日头条,Path(Path运营商最早的侧边栏app该,效果说成是Path效果),所以就研究了下. 然后发现Git Hu ...
- iOS开发中UIDatePicker控件的使用方法简介
iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time , Count Down Timer四 ...
- ios开发中button控件的属性及常见问题
最为最基本的控件,我们必须对button的每个常用属性都熟练应用: 1,使用之前,必须对按钮进行定义,为乐规范,在@interface ViewController (){}中进行定义,先定义后使用. ...
- IOS开发--自定义segment控件,方便自定义样式
系统的segment控件太封闭,想换个颜色加个背景太难了,忍不住自己写一个,以备不时之需 这个控件给出了很多自定义属性的设置,用起来还是比较方便的,需要注意的 itemWidth如果不设置,则会按照控 ...
- IOS开发之按钮控件Button详解
reference:http://mxcvns.lofter.com/post/1d23b1a3_685d59d 首先是继承问题,UIButton继承于UIControl,而UIControl继承于U ...
- ios开发之--系统控件显示中文
虽然一直知道X-code肯定提供有语言本地化的设置地方,但是一直也做个记录,有些时候的汉化,还是需要使用代码去控制,键盘的右下角.navagiton的return使用代码修改,调用系统相机时,也是出现 ...
随机推荐
- UML类图中的六大关系:泛化、实现、依赖、关联、聚合、组合关系
UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 1.泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并 ...
- Linux命令之cut
cut:文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准输出.如果不指定 File 参数,cut 命令将读取标准输入.必须指定 -b.-c 或 -f 标志之一. 主要参数: -b(by ...
- 分享一款简洁的jQuery轮播源码
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>无标题页</titl ...
- Smarty安装配置方法
下载最新的Smarty:http://smarty.php.net/ 解压后将目录中的libs目录重命名为smarty,复制到你的网站目录,同时在网站根目录下建立templates和templates ...
- a标签中使用img后的高度多了4px
前两天,在做一个网站的时候,发现a标签中使用img后的高度多了4px,各种纠结. 最后,仔细分析,终于找到原因了,因为img是行内元素,默认display: inline; 它与文本的默认行为类似,下 ...
- Sql 求比率 类型 影响 结果
- JAVA之执行cmd命令
感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去一两个月,只能用“疲倦”两个字来形容,而且是身心疲惫.每天11.12个小时的工作我都没觉得烦,但是总是想克服却又很难克服的 ...
- blogs
http://blogs.msdn.com/b/tess/archive/2008/02/04/net-debugging-demos-information-and-setup-instructio ...
- Cocos2d-x移植到WindowsPhone8移植问题-框架rapidjson移植问题
Cocos2d-x 3.0提供了JSON框架rapidjson可以在Windows Phone 8平台使用,如果没有进行必要的配置,在编译的时候会报错,document.h等头文件找不到的错误.在Wi ...
- Swift - Property ''not initialized at super.init call
Property ''not initialized at super.init call 这个错误应该挺常见的的,为什么在百度上没有找到呢,stack over flow找到了,也不能说是什么解决办 ...