UIStepper UISlider UISwitch UITextField 基本控件
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 基本控件的更多相关文章
- UIStepper步进器 ——事件驱动型控件,(一个+和-按钮的)
- (void)viewDidLoad { [super viewDidLoad]; //步进器 固定的size (94*27), 事件驱动型控件 UIStepper *st ...
- UISwitch(开关控件)、UISegmentedControl(分段控件)
一.UISwitch 1.初始化 UISwitch *s1 = [[UISwitch alloc]initWithFrame:CGRectMake(50, 170, 100, 200)]; 2.设 ...
- 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- UI--普通控件总结1--控件使用
本文目录 0.UIView常用的属性和操作 0_1.UIView常见的属性 0_2.UIView状态 0_3.UIView常用的方法 1.文本框UITextField和文本视图UITextView 1 ...
- iOS基本UI控件总结
包括以下几类: //继承自NSObject:(暂列为控件) UIColor *_color; //颜色 UIImage *_image; //图像 //继承自UIView:只能相应手势UI ...
- iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...
- IOS开发之XCode学习013:步进器和分栏控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIStepper和UISegmente ...
- swift系统学习控件篇:UIbutton+UIlabel+UITextField+UISwitch+UISlider
工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UIButton+UILabel // // ViewController.swift // ...
随机推荐
- 多重和嵌套if
多重if实例: 看例子,内容不解释了! 隐藏行号 复制代码 ? 多重if import java.util.Scanner; public class 多重if{ public static void ...
- IOS 代码管理工具
代码管理工具国内主要用的是SVN 国外主要是Git
- OD调试9—实例:深入分析代码完成软件破解
OD调试9—实例:深入分析代码完成软件破解 爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出 ...
- 11 java 反射机制
Java反射机制的适用场景及其利与弊: http://blog.csdn.net/zolalad/article/details/29370565 http://my.oschina.net/u/10 ...
- SATA接口硬盘加密器
加密卡置于主板与硬盘.光驱之间,透明实时地对写入数据进行加密,对读出数据进行解密,有效防止信息被窃.未经授权的阅读和修改,以及硬盘.光盘丢失.被盗.废弃.非法用户访问而引发的敏感信息泄密问题,为用户打 ...
- 【译】神经网络与深度学习 Ch1-Section0
用神经网络识别手写数字 人类的视觉系统是是大自然的奇迹.考虑下面手写数字序列: 大多数人能够轻易地是识别出是504192.在我们大脑的每个半球都有一个基础的皮质,这就是我们熟知的V1区,它包含了14亿 ...
- ubuntu没有进入图形界面解决办法
可以通过设置runlevel 为2 来控制以后的登陆,或者是升级不完全.中间出错了,无法正常登陆.有2种方式来进入图形界面: 1. 登陆系统后,输入如下命令来启动图形界面: startx 2. 登陆系 ...
- NAS4Free 安装配置(二)系统安装
NAS4Free系统安装 看一看BIOS设置 开机按DEL进BIOS 改日期时间 这里可以设置RAID,因为ZFS的RAID功能更好,所以我们在这里不配置RAID 制作LiveUSB 用软件(USB ...
- asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL
效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...
- Java笔记--java一行一行写入或读取数据
转自 Ruthless java一行一行写入或读取数据 链接:http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html 假如E:/ ...