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中画一条下划线,本文就简单的选择 ...
随机推荐
- NYOJ题目889求距离
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsYAAAJ2CAIAAADTwNOXAAAgAElEQVR4nO3dPVLrSteG4W8S5B4IsQ
- php JS和JQ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C#的匿名函数
using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...
- Android init.rc执行顺序
转自:http://blog.csdn.net/kickxxx/article/details/7590665 1. 所有的action运行于service之前 2. 下面为各个section的执行 ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- Object.create 函数 (JavaScript)
创建一个具有指定原型且可选择性地包含指定属性的对象. 语法 Object.create(prototype, descriptors) 参数 prototype 必需. 要用作原型的对象. 可以为 ...
- 计算第K个素数
暂时没有时间整理,先放在这里: http://www.quora.com/Prime-Numbers/What-are-good-ways-to-find-nth-prime-number-in-th ...
- 在Window的IIS中创建FTP的Site并用C#进行文件的上传下载
文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服务器计算机上. 然后,远程计算机可以使用 FTP ...
- Codeforces Round #227 (Div. 2) E. George and Cards set内二分+树状数组
E. George and Cards George is a cat, so he loves playing very much. Vitaly put n cards in a row in ...
- C++ 拷贝构造函数 和 六大函数
1. C++什么时候会调用 拷贝构造函数? a.一个对象作为函数参数,以值传递的方式传入函数体: b.一个对象作为函数返回值,以值传递的方式从函数返回:(实际使用时,会被编译器优化掉) c.一个对象 ...