1.UIStepper 步进控件

必掌握

1.重要属性:

.value 初始值

.maximumValue 最大值

.minimumValue 最小值

.stepValue 间隔

2.常用事件:

ValueChanged事件:当数值改变时触发

2 .UISlider 滑块控件

快速滑动的方式得到一个可变数值

1.重要属性:

.value

2.重要事件:

ValueChanged事件:当数值改变时触发

//显示滑块控件的初始值

self.sliderLabel.text = [NSString stringWithFormat:@"%.2lf",self.slider.value];

例:三个滑块控件控制一个label的渐变色,红、绿、蓝

#import "ViewController.h"

@interface  ViewController ()

@property (weak, nonatomic) IBOutlet UISlider *redSlider;

@property (weak, nonatomic) IBOutlet UISlider *greenSlider;//连接控件生成属性

@property (weak, nonatomic) IBOutlet UISlider *blueSlider;

@property (weak, nonatomic) IBOutlet UILabel *label;

- (IBAction)changeRedColor:(UISlider *)sender;

@end

@implementation  ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

self.label.backgroundColor =[UIColor colorWithRed:self.redSlider.value green:self.greenSlider.value blue:self.blueSlider.value alpha:1];

}

- (IBAction)changeRedColor:(UISlider *)sender

{

//三个控件共用一个方法,赋给label

self.label.backgroundColor = [UIColor colorWithRed:self.redSlider.value green:self.greenSlider.value blue:self.blueSlider.value alpha:1];

}

@end

效果如下:

3. UISwitch 开关控件

1.重要属性:

.on (BOOL)   获取或设置开关的状态

.enabled(BOOL) 获取或设置控件是否可用

//修改switch状态

[self.switchControl setOn:NO animated:YES];

//设置switch不可用

self.switchControl.enabled = NO;

2.重要的事件:

valueChanged事件

例:两个开关。主控制辅,主开,则辅可以开关。主关,则辅不可操作

- (IBAction)mainSwitchChanged:(UISwitch *)sender {

//根据当前sender的状态来决定下面的switch的状态

[self.otherSwitch setOn:sender.on animated:YES];

//下面的switch能不能用,取决于sender的状态

//sender 如果为YES,enabled为YES

//sender 如果为NO,enabled为NO

self.otherSwitch.enabled = sender.on;

}

4.UITextField 文本框控件

4.1 是什么?

是单行的文本输入框,支持用户的输入

4.2 属性

.text  获取或设置文本框内的文本

4.3 系统弹出的键盘

第一响应者:当用户触摸界面时,系统会根据手指触摸的位置层层定位到具体的控件,如果,本次触点在文本框控件的区域内,那么文本框就负责对本次的触碰事件进行响应,由于文本框比较特殊,所以系统自动将文本框设置为响应事件的第一关,并且自动弹出键盘。

注意:

当用户点击屏幕后,首先开启的是查找hit-View的过程。从window开始,给所有直接子视图发hit-Test的消息,直到某一个控件没有子视图了,并且这个触点在这个子视图中,则返回这个控件,于是hit-View找到了

找到hit-View后,view则成为了需要第一个为这个事件提供响应的对象,如果,该对象没有提供事件响应,则该事件对象会向视图的父视图继续传递,如果父视图依然没有提供响应,则继续向上传递,直到传递到UIApplication对象,依然没有处理的话,则抛弃该事件。这个过程叫做响应者链。

4.4 如何关闭键盘

方法一:让键盘放弃第一响应者的身份即可

[self.textField resignFirstResponder];

方法二:让键盘所在的父视图结束编辑状态

[self.view endEditing:YES];

4.5 什么时候关闭键盘呢?(关闭键盘的时机)

时机一:点击键盘右下角的按键   选择Did End On Exit事件 为文本框添加一个事件

时机二:点击屏幕的空白部分

重写控制器的touchesBegan:withEvent:方法 (不用连接方法)

例:

在#import "ViewController.h"中

@interface  ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *textField;

@end

@implementation  ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

//self.textField.text = @"xxxxxxx";

}

- (IBAction)openKeyboard:(UIButton *)sender {

//让文本框成为第一响应者

[self.textField becomeFirstResponder];

}

- (IBAction)closeKeyboard:(UIButton *)sender {

//方式一:让文本框放弃第一响应者的身份

//[self.textField resignFirstResponder];

//方式二:让文本框的父视图放弃编辑状态

[self.view endEditing:YES];

}

//时机一:点击键盘右下角的按键,该事件触发 键盘收起

- (IBAction)tapReturn:(UITextField *)sender {

//[sender resignFirstResponder];

[self.view endEditing:YES];

}

//时机二:点击空白屏幕 键盘收起

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

[self.view endEditing:YES];

}

例如:实现如下界面:

[输入框][发送按钮]

1)当点击发送按钮后,界面上会出现一个UILabel,内容就是输入框中的内容,此时要求,收起键盘,清空输入框

2)当用户点击键盘右下角的按键时,功能和1相同

3)label本身设置为宽300,高40,距离左边20个点

4)多个label不能重合

在 #import "ViewController.h"中

@interface  ViewController ()

//发送按钮

@property (weak, nonatomic) IBOutlet UIButton *sendButton;

//文本框

@property (weak, nonatomic) IBOutlet UITextField *textField;

@property(nonatomic,assign)float y;

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

// 设置按钮属性

self.sendButton.backgroundColor=[UIColor redColor];

self.y=210;

}

//点击发送按钮,响应事件

- (IBAction)openKeyBound:(UIButton *)sender {

UILabel*label=[[UILabel alloc]init];

label.frame=CGRectMake(20, self.y,300, 40);

label.text=[NSString stringWithFormat:@"发送结果:%@",self.textField.text];

[self.view addSubview:label];

self.y+=60;

[self.view endEditing:YES];

self.textField.text=nil;

}

//点击左下角收起键盘

- (IBAction)tapReturn:(UITextField *)sender {

UILabel*label=[[UILabel alloc]init];

label.frame=CGRectMake(20,self.y,300, 40);

label.text=[NSString stringWithFormat:@"文本框输入:%@",self.textField.text];

[self.view addSubview:label];

self.y+=60;

[self.view endEditing:YES];

self.textField.text=nil;

[self.view endEditing:YES];

}

@end

效果如下:

实现功能:界面如下:

[输入框 账号]

[输入框 密码]

[登录   按钮]

[UILabel 显示当前状态(登录后显示用户名,没登录显示未登录)]

1)用户输入完用户名和密码后,点击登录,判断是否可以登录,如果登录成功,label上显示当前用户的用户名,如果没有登录,显示未登录

2)当用户没有填写用户名和密码时,点击登录,提供用户输入用户名和密码

3)第一个textField支持Next功能,第二是Done

在#import "ViewController.h"中

@interface  ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *textUse;//文本框1连线

@property (weak, nonatomic) IBOutlet UITextField *textPassword;//文本框2连线

@property (weak, nonatomic) IBOutlet UILabel *labelShow;//显示登陆成功的连线

@property (weak, nonatomic) IBOutlet UILabel *label;//显示输入有误的连线

- (IBAction)frist:(UITextField *)sender;

- (IBAction)done:(UITextField *)sender;

- (IBAction)buttonValue:(UIButton *)sender;

@end

@implementation  ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor=[UIColor greenColor];

}

- (IBAction)buttonValue:(UIButton *)sender {

if([self.textUse.text isEqualToString:@"yang"]&&[self.textPassword.text isEqualToString:@"123"]){

self.labelShow.text=@"yang用户登陆成功";

self.label.text=@"";

}

else{

self.label.text=@"用户名或密码错误";

self.labelShow.text=@"未登录";

}

[self.view endEditing:YES];

self.textUse.text=nil;

self.textPassword.text=nil;

}

//实现next功能

- (IBAction)frist:(UITextField *)sender {

//文本框1连线,实现点回车到next功能

[self.textPassword becomeFirstResponder];

}

- (IBAction)done:(UITextField *)sender {

[self.view endEditing:YES];

}

@end

效果界面如下:

UIStepper UISlider UISwitch UITextField 基本控件的更多相关文章

  1. UIStepper步进器 ——事件驱动型控件,(一个+和-按钮的)

    - (void)viewDidLoad {    [super viewDidLoad];        //步进器 固定的size (94*27), 事件驱动型控件    UIStepper *st ...

  2. UISwitch(开关控件)、UISegmentedControl(分段控件)

    一.UISwitch 1.初始化 UISwitch *s1 = [[UISwitch alloc]initWithFrame:CGRectMake(50, 170, 100, 200)];   2.设 ...

  3. 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...

  4. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  5. UI--普通控件总结1--控件使用

    本文目录 0.UIView常用的属性和操作 0_1.UIView常见的属性 0_2.UIView状态 0_3.UIView常用的方法 1.文本框UITextField和文本视图UITextView 1 ...

  6. iOS基本UI控件总结

    包括以下几类: //继承自NSObject:(暂列为控件) UIColor *_color;    //颜色 UIImage *_image;    //图像 //继承自UIView:只能相应手势UI ...

  7. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  8. IOS开发之XCode学习013:步进器和分栏控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIStepper和UISegmente ...

  9. swift系统学习控件篇:UIbutton+UIlabel+UITextField+UISwitch+UISlider

    工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UIButton+UILabel // // ViewController.swift // ...

随机推荐

  1. 给一组a标签当前页a标签加class

    <script type="text/javascript"> $(document).ready(function(){ $(".links .topbg_ ...

  2. cocos2dx 字体描边方法介绍

    转载地址:http://www.taikr.com/group/2/thread/1606 关于cocos2dx 字体描边的实现,不考虑效果和效率的话,是有三种方式: ① 利用CCLabelTTF制作 ...

  3. QWidget使用qss样式的background-image属性

    最近在学习Qt使用QSS样式美化窗口部件的内容.发现在对QWidget应用background-image改变窗口背景图片时,QWidget的窗口背景并未生效.工程建立如下:    1.新建 Qt A ...

  4. hadoop之MapReduce WordCount分析

    MapReduce的设计思想 主要的思想是分而治之(divide and conquer),分治算法. 将一个大的问题切分成很多小的问题,然后在集群中的各个节点上执行,这既是Map过程.在Map过程结 ...

  5. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  6. js判断是手机访问还是电脑访问

    <script type="text/javascript">        <!--        //平台.设备和操作系统         var syste ...

  7. CSU 1119 Collecting Coins

    bfs+dfs 很复杂的搜索题. 因为数据很小,rock最多只有5个,coin最多只有10个,移动rock最多4^5=1024种状态: 思路: 每次先把当前状态能拿到的coin拿走,并将地图当前位置设 ...

  8. scala学习笔记-Demo存档

    class Thermomenter{ var celsius :Float = _; //将变量设置为缺省值'_',这个符号指定了变量的初始化值 //对数值类型来说是0,布尔类型是false,引用类 ...

  9. 感知机(perceptron)

    二类分类的线性分类模型,属于判别模型,利用梯度下降法对损失函数进行极小化求得感知机模型分为原始形式和对偶形式,是神经网络和支持向量机的基础 由输入控件到输出控件的如下函数: f(x)=sign(W.X ...

  10. 膜拜一个神奇的女人——Hedy Lamarr

    她演绎了首部露点电影.经历了六次婚姻.出版了首本自曝隐私的自传,还曾入室行窃过两次——在这样一个饱受争议的大环境下,她还能在60多年前提出“跳频”技术和一系列无线信号技术的全新概念,其中,“跳频”技术 ...