UIButton、UILabel、UITextField 初学者需要了解的基本定义和常用设置
以下是三个IOS开发中最常用的控件,作为IOS基础学习教程知识 ,初学者需要了解其基本定义和常用设置,以便在开发在熟练运用。
UIButton按钮
第一、UIButton的定义
UIButton *button=[[UIButton buttonWithType:(UIButtonType);
能够定义的button类型有以下6种,
typedef enum {
UIButtonTypeCustom = 0, 自定义风格
UIButtonTypeRoundedRect, 圆角矩形
UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用
UIButtonTypeInfoLight, 亮色感叹号
UIButtonTypeInfoDark, 暗色感叹号
UIButtonTypeContactAdd, 十字加号按钮
} UIButtonType;
第二、设置frame
button1.frame = CGRectMake(20, 20, 280, 40);
[button setFrame:CGRectMake(20,20,50,50)];
第三、button背景色
button1.backgroundColor = [UIColor clearColor];
[button setBackgroundColor:[UIColor blueColor]];
第四、state状态
forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现
enum {
UIControlStateNormal = 0, 常规状态显现
UIControlStateHighlighted = 1 << 0, 高亮状态显现
UIControlStateDisabled = 1 << 1, 禁用的状态才会显现
UIControlStateSelected = 1 << 2, 选中状态
UIControlStateApplication = 0x00FF0000, 当应用程序标志时
UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管
};
@property(nonatomic,getter=isEnabled)BOOL enabled; // default is YES. if NO, ignores touch events and subclasses may draw differently
@property(nonatomic,getter=isSelected)BOOL selected; // default is NO may be used by some subclasses or by application
@property(nonatomic,getter=isHighlighted)BOOL highlighted;
第五 、设置button填充图片和背景图片
[button setImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];
[button setBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];
第六、设置button标题和标题颜色
[button1 setTitle: @"点击" forState:UIControlStateNormal];
[button setTitleColor:[UIColorredColor]forState:UIControlStateNormal];
第七、设置按钮按下会发光
button.showsTouchWhenHighlighted=NO;
第八、添加或删除事件处理
[button1 addTarget:self action: @selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
[btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
第九、 设置按钮内部图片间距和标题间距
UIEdgeInsets insets; // 设置按钮内部图片间距
insets.top = insets.bottom = insets.right = insets.left = 10;
bt.contentEdgeInsets = insets;
bt.titleEdgeInsets = insets; // 标题间距
第十、 其他
// 设置按钮为无效按钮,如果按钮无效了,按钮就不再响应用户了
btn.enabled = YES;
// 给按钮添加手势识别器
[btn addGestureRecognizer:tap];
// 添加一个按钮 ,示例
UIButton *calBtn = [[UIButton alloc]initWithFrame:CGRectMake(50, 200, 200, 40)]; // 按钮大小
calBtn.backgroundColor = [UIColor orangeColor]; // 背景颜色
[calBtn setTitle:@"点我,我就计算" forState:UIControlStateNormal]; // 设置默认状态下的文字
[calBtn setTitle:@"点我,我就计算" forState:UIControlStateHighlighted]; // 设置高亮状态下的文字
[calBtn setBackgroundImage:[UIImage imageNamed:@"login_btn_n_Normal"] forState:UIControlStateNormal]; // 设置默认状态下的背景图片
[calBtn setBackgroundImage:[UIImage imageNamed:@"logoff_btn_n_Highlighted"] forState:UIControlStateHighlighted]; // 设置高亮状态下的背景图片
[self.view addSubview:calBtn]; // 最会一定要添加按钮
【注】图片的名称要提前修改好,最好在后面加上分辨是默认状态还是高亮状态的单词
UILabel标签
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(50, 100, 300, 160)]; // 大小
lbl.backgroundColor = [UIColor lightGrayColor]; // 背景颜色
lbl.textColor = [UIColor blueColor]; // 字体颜色
// lbl.shadowColor = [UIColor redColor]; // 阴影效果,不常用
// lbl.shadowOffset = CGSizeMake(4, -10);
lbl.text = @"宿舍的"; // 添加文字
// 标签内容对齐方式
lbl.textAlignment = NSTextAlignmentCenter;
// 设置标签的行数,如果设置为0,表示可以有任意多行
lbl.numberOfLines = 2;
// 当标签有多行时,设置换行方式 ,默认的是以单词为单位
lbl.lineBreakMode = NSLineBreakByTruncatingMiddle; // 如果不能完全显示,中间会有三个小点
// 设置标签高亮状态
lbl.highlighted = YES;
// 设置标签高亮时字体颜色
lbl.highlightedTextColor = [UIColor purpleColor];
// 允许用户可以与标签进行交互
lbl.userInteractionEnabled = YES; //允许用户交互
// 定义一个点击手势识别器对象
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(lblClicked:)];
// 在标签上添加一个手势识别器
[lbl addGestureRecognizer:tap];
// lbl.enabled = NO;
lbl.adjustsFontSizeToFitWidth = YES;
// lbl.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
[self.view addSubview:lbl]; // 控件最后都需要添加
【小结】下面的大家可以试着用一下,
UIButton、UILabel、UITextField 初学者需要了解的基本定义和常用设置的更多相关文章
- swift系统学习控件篇:UIbutton+UIlabel+UITextField+UISwitch+UISlider
工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UIButton+UILabel // // ViewController.swift // ...
- iOS学习21之UILabel, UITextField, UIButton, UIImageView
1.UILabel 1> 概述 UILabel (标签): 是显示文本的控件.在App中 UILabel 是出现频率最高的控件 UILabel 是 UIView 子类,作为子类一般是为了扩充父类 ...
- UILabel,UITextField,UIButton三大基础控件总结
(一)UILabel空件 属性: 1.背景颜色 label.backgroundColor = [UIColor ***]; 2. 显示文字: label.text = @"******&q ...
- UILabel,UITextField 以及UIButton应用
</pre><pre name="code" class="cpp">一.UILabel 它是ioS开发使用的控件来显示文本,它是UIV ...
- UI 经常用法总结之--- UILabel UITextField (不断更新中)
UILabel : UIView <NSCoding> 1.创建一个UILabel对象 UILabel *label = [[UILabel alloc]initWithFrame:CGR ...
- iOS中UITextField常用设置和方法
//初始化textField并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; // ...
- 初学者刚学c++在定义类时只有成员变量易犯的错误
------------------------ #include<iostream> using namespace std;//c++的命名空间 class circle { publ ...
- Java初学者作业——完成对已定义类(Admin)的对象的创建。并完成属性的赋值和方法的调用。
返回本章节 返回作业目录 需求说明: 完成对已定义类(Admin)的对象的创建.并完成属性的赋值和方法的调用. 实现思路: 创建 MyTest 类,并添加 main函数. 在 main函数中完成对 A ...
- UI入门指引
1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...
随机推荐
- AndroidDevTools简介
AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具. ...
- JQuery学习笔记---jquery对象和DOM对象的关系
1.DOM(Document Object Model,文档对象模型).DOM树 { html (head&&body), head(meta && title) ...
- 字典树(Trie树)
1. trie基础 (1) 是什么? Trie,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种. (2) 性质 根节点不包含字符,除根节点外每一个节点都只包含一个字符 从根节点到某一节点,路 ...
- HTML 5 Web 存储
HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储sessionStorage - 针对一个 session 的数据存储 html5 web sto ...
- html5学习笔记5--API Range对象(二)
Range对象之cloneRange和cloneContents 代码效果如下 首次点击“选择内容“按钮提示如下 接着会显示 最后显示 以下为整个代码 <!DOCTYPE html> &l ...
- 把VIM打造成IDE
======================================= 安装vim相关软件 =============== ...
- Cygwin的安装
Android开发要用到NDK,装了一个虚拟机,老是不行. 后来安装了一个cygwin,安装完毕后unset home,再export NDK,就可以使用了,非常方便,不用像虚拟机那样经常切换.
- hhvm的正确安装姿势 http://dl.hhvm.com 镜像
hhvm是php的第三方运行环境,由facebook出品,基于该运行环境,它还提供了一种编程语言hack - PHP的静态类型版. 折腾了一天后,包括各种编译.配置.FQ,后面终于忍不住搜了一下 ht ...
- JavaWeb前端基础复习笔记系列 一
课程:孔浩前端视频教程(CMS内容管理系统case) 1.背景知识 ASPCMS,是一个基于asp的CMS.类似于Jeecms是基于Java的.aspcms:http://www.aspcms.com ...
- 如何在BPM中使用REST服务(1):通过程序访问网页内容
这篇文章主要描述如何通过程序来访问网页内容,这是访问REST服务的基础. 在Java中,我们可以使用HttpUrlConnection类来实现,代码如下. package http.base; imp ...