iOS学习21之UILabel, UITextField, UIButton, UIImageView
1.UILabel
1> 概述
UILabel (标签): 是显示文本的控件。在App中 UILabel 是出现频率最高的控件
UILabel 是 UIView 子类,作为子类一般是为了扩充父类的功能, UILabel 扩展了文字显示的功能, UILabel 是能显示文字的视图。
2> 创建UILabel的步骤
创建UILabel与创建UIView的步骤很相似。
开辟空间并初始化(如果本类有初始化方法,则使用自己的初 始化方法;否则使用父类的)
设置文本控制相关的属性
添加到父视图上,用以显示
释放所有权(只是做了引用计数-1)---ARC不需要,系统会自动添加内存回收代码
3> UILabel属性设置
红色为常用的属性,必须记住
代码案例:
// 1.创建UILabel对象并初始化
UILabel *usernameLabel = [[UILabel alloc] init];
UILabel *inputUsernameLabel = [[UILabel alloc] init]; // 2.设置属性
usernameLabel.frame = CGRectMake(, , , ); inputUsernameLabel.frame = CGRectMake(CGRectGetMaxX(usernameLabel.frame) + kSpace,
CGRectGetMinY(usernameLabel.frame),
CGRectGetWidth(self.window.frame) - CGRectGetWidth(usernameLabel.frame) - (CGRectGetMinX(usernameLabel.frame) * + kSpace),
CGRectGetHeight(usernameLabel.frame)); // CGRectGet... 获取某一个视图的frame值 // 设置文本信息
usernameLabel.text = @"用户名:";
inputUsernameLabel.text = @"请输入用户名"; // 设置文本的对齐方式(居中|居左|居右)
usernameLabel.textAlignment = NSTextAlignmentRight;
inputUsernameLabel.textAlignment = NSTextAlignmentCenter; // 设置文本内容颜色
usernameLabel.textColor = [UIColor purpleColor];
inputUsernameLabel.textColor = [UIColor purpleColor]; // 设置字体
usernameLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:];
inputUsernameLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:]; // 打印所有的字体样式
NSLog(@"%@", [UIFont familyNames]); // 设置显示行数
usernameLabel.numberOfLines = ;
// 断行模式
usernameLabel.lineBreakMode = NSLineBreakByWordWrapping; // 按照单词换行
// 阴影颜色
usernameLabel.shadowColor = [UIColor blackColor];
// 阴影大小
usernameLabel.shadowOffset = CGSizeMake(, );
使用CGRectGet...可以获取任意一个视图的位置坐标,这样可以提高代码的健壮性,修改时只需要修改一处就可以修改所有相关视图的位置
2.UITextField
1> 概述
UITextField(输入框):是控制文本输入和显示的控件。在App中UITextField出现频率也比较高。
iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便你进一步操作。在你不需要输入的时候,可以使用收回键盘的方法,收回弹出的键盘。
UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑; UITextField允许用户编辑文字(输入)。
2> 创建UITextField步骤
创建UITextField与创建UILabel的步骤很相似。
开辟空间并初始化(如果本类有初始化方法,则使用自己的初始化方法;否则使用父类的)
设置文本显示、输入等相关的属性
添加到父视图上,用以显示
释放对象所有权(MRC需要)
3> UITextField文本显示属性
/**
* 1.创建UITextField对象并初始化
*/
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(, , , )]; /**
* 2.设置属性
*/
textField.backgroundColor = [UIColor cyanColor]; // 文本内容
textField.text = @"用户名";
textField.placeholder = @"请输入用户名";
textField.textColor = [UIColor blackColor]; // 文本对齐方式
textField.textAlignment = NSTextAlignmentCenter;
4> UITextField输入控制属性
// 是否允许编辑
textField.enabled = YES; // 开始编辑时是否清空输入框的内容
textField.clearsOnBeginEditing = YES; // 是否安全输入(输入密码时使用)
textField.secureTextEntry = NO; // 设置键盘样式
textField.keyboardType = UIKeyboardTypeEmailAddress; // 键盘右下角return按钮类型(枚举值)
textField.returnKeyType = UIReturnKeySend;
5> UITextField外观控制属性
// 边框样式
textField.borderStyle = UITextBorderStyleRoundedRect; // 自定义输入视图(默认是键盘)
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor cyanColor];
textField.inputView = view; // 输入框上方的内容
textField.inputAccessoryView = view; // 清除按钮格式(x)
textField.clearButtonMode = UITextFieldViewModeWhileEditing; // 输入框左视图
textField.leftView = view; textField.leftViewMode = UITextFieldViewModeAlways;
6> UITextField常用代理方法
设置代理的三部曲
① 设置代理
textField.delegate = self;
② 遵守协议(在.h文件或.m文件的延展中)
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITextFieldDelegate>
UITextFieldDelegate 为 UITextField 遵守的协议
③ 实现协议(在AppDelegate.m文件或控制器的.m文件中)
// 将要开始编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
NSLog(@"将要开始编辑");
return YES;
} // 已经开始编辑
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"已经开始编辑");
} // 将要完成编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
NSLog(@"将要完成编辑");
return YES;
} // 已经完成编辑
- (void)textFieldDidEndEditing:(UITextField *)textField
{
NSLog(@"已经完成编辑");
} // 点击键盘return键的时候,键盘回收
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder]; // 释放第一响应者,使键盘回收
NSLog(@"点击键盘return键");
return YES;
}
3.UIButton
1> 概述
UIButton(按钮):是响应用户点击的控件。在App中UIButton是出现频率很高的控件。
UIButton与UILabel、UITextField侧重点不同,侧重于处理用户交互事件。当然UIButton类也提供了一些方法控制按钮外观。
2> 使用UIButton的步骤
创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。
创建button对象(如果本类有初始化方法,则使用自己的初始化方法;否则使用父类的)
设置按钮相关的属性
为按钮添加点击事件
添加按钮到父视图上,用以显示
按钮无需释放(一般情况创建UIButton都使用自己的便利构造器方法,无需释放对象的所有权)
3> UIButton外观控制属性
// 设置背景图片
// 创建UIImage对象
UIImage *xiaoPangImage = [UIImage imageNamed:@"xiaopang.jpg"]; // 普通状态下
[button setBackgroundImage:xiaoPangImage forState:UIControlStateNormal]; // 高亮状态下
[button setBackgroundImage:[UIImage imageNamed:@"huaiyu.jpg"] forState:UIControlStateHighlighted]; // 设置前景图片(必须是镂空的图)
[button setImage:[UIImage imageNamed:@"222.png"] forState:UIControlStateNormal];
// 设置标题 普通状态下
[button setTitle:@"点我啊..." forState:UIControlStateNormal]; // 设置标题 高亮状态下(点住)
[button setTitle:@"在点我..." forState:UIControlStateHighlighted]; // 设置标题颜色
button.tintColor = [UIColor redColor];
4> UIButton添加事件
UIButton从父类UIControl那继承了控制相关的方法, 如添加事件、移除事件等。
// 单击状态下
[button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
// 实现按钮点击事件
- (void)buttonClick:(UIButton *)sender { NSLog(@"点我干啥"); sender.backgroundColor = [UIColor colorWithRed:arc4random() % / 255.0 green:arc4random() % / 255.0 blue:arc4random() % / 255.0 alpha:]; // 移除事件
[sender removeTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside]; }
4.UIImageView
1> 概述
UIImageView是iOS中用于显示图片的类,iOS中几乎所有看到的图片,都是由这个类来显示的。
2> UIImageView的创建
// 图片文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"" ofType:@"jpg"];
// 创建一个UIImage对象,使用initWithContentOfFile: 方法
UIImage *image = [UIImage imageWithContentsOfFile:path];
// 创建一个UIImageView对象,使用initWithImage: 方法
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(, , , );
[self.view addSubview:imageView];
3> UIImageView的动态图(实现动画)
animationImages // 设置一组动态图
animationDuration // 设置播放一组动态图片的时间
animationRepeatCount // 设置重复次数
startAnimating // 开始动画
stopAnimating // 结束动画
// 添加动态植物
UIImageView *flowerImageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )]; // 准备图片数组
NSMutableArray *imageArray = [NSMutableArray array];
for (int i = ; i <= ; i++) {
// 图片名
NSString *nameStr = [NSString stringWithFormat:@"flower%d.tiff", i];
// 创建UIImage对象
UIImage *image = [UIImage imageNamed:nameStr];
// 将UIImage对象添加到数组中
[imageArray addObject:image];
} // 设置一组动态图片
flowerImageView.animationImages = imageArray; // 设置动画播放时间
flowerImageView.animationDuration = ;
// 设置重复次数
flowerImageView.animationRepeatCount = ; // 默认为0,0表示无限循环
// 开始动画
[flowerImageView startAnimating]; [bgImageView addSubview:flowerImageView];
iOS学习21之UILabel, UITextField, UIButton, UIImageView的更多相关文章
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- iOS: 学习笔记, 使用performSelectorOnMainThread及时刷新UIImageView
在iOS中, 界面刷新在主线程中进行, 这导致NSURLSession远程下载图片使用UIImageView直接设置Image并不能及时刷新界面. 下面的代码演示了如何使用 performSelect ...
- UILabel,UITextField,UIButton三大基础控件总结
(一)UILabel空件 属性: 1.背景颜色 label.backgroundColor = [UIColor ***]; 2. 显示文字: label.text = @"******&q ...
- iOS 学习 - 21 系统自带解析 XML
准备工作: new -> file -> other -> Empty ,在 Save As: 中随便起个名字后缀为 .xml 拷贝下面 <person> <stu ...
- 1.注册或登录页面设计:UILabel,UIButton,UITextField
学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程中遇到的一些知识进行总结,希望能对iOS初 ...
- iOS学习——UI基础UIButton(七)
前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实现是使用系统提供的各种控件 ...
- iOS学习笔记(七)——UI基础UIButton
前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实现是使用系统提供的各种控件 ...
- iOS UILabel UITextView UIButton 等等显示文本行间距
iOS UILabel UITextView UIButton 等等显示文本行间距都用如下方法 NSMutableParagraphStyle *paragraphStyle = [[NSMutab ...
- iOS开发-UILabel和UIButton添加下划线
关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选择 ...
随机推荐
- hdu1162(最小生成树 prim or kruscal)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 意义:给出一些点,用线问使所有点直接或间接连通,需要多长: 思路:裸最小生成树: 法1: pri ...
- JUnit笔记
- Elo rating system 模拟
package org.cc.foo_008; import java.util.ArrayList; import java.util.List; import java.util.Random; ...
- C#调用C++DLL的小总结5---和C++的DLL的联合调试
http://fpcfjf.blog.163.com/blog/static/5546979320134922938373/ http://blog.csdn.net/jiangxinyu/artic ...
- Cash Cow【dfs较难题应用】【sdut2721】
Cash Cow Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdut ...
- Swipe JS – 移动WEB页面内容触摸滑动类库
想必做移动前端的同学经常会接到这样子的一个需求,就是在移动设备页面上的banner图能够用手指触摸左右或上下的滑动切换,这在移动设备是个很常见的一个效果,其用户体验远甚于点击一个按钮区域,通过手指的触 ...
- ShooterGame 学习笔记1 PlayerPawn的两个Mesh的可见性
GameMode Override 为 ShooterGame_TeamDeathMatch GameMode中设置的Default Pawn Class 为 PlayerPawn , PlayerP ...
- git push 使用总结
git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:<远程分支名> ...
- css 全局 兼容性问题
css 笔记 第一种:常用的全局CSS属性设置 //参考大型网站,如凤凰网 (1)清除所有的标记的内外边距 body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,p ...
- jQuery实现长按按钮触发事件的方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...