IOS开发之UI控件属性
来源:互联网 发布:淘宝网店模板制作 编辑:程序博客网 时间:2024/06/04 20:02
UI控件常见属性
@property(nonatomic,readonly) UIView *superview;
获得自己的父控件对象
@property(nonatomic,readonly,copy) NSArray *subviews;
获得自己的所有子控件对象
@property(nonatomic) NSInteger tag;
控件的ID(标识),父控件可以通过tag来找到对应的子控件
@property(nonatomic) CGAffineTransform transform;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
@property(nonatomic) CGRect frame;
控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
可以定义控件的位置(origin)和大小(size)
@property(nonatomic) CGRect bounds;
控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
可以定义控件的大小(size)
@property(nonatomic) CGPoint center;
控件中点的位置(以父控件的左上角为坐标原点)
可以定义控件的位置(center)
- normal(普通状态)
- 默认情况(Default)
- 对应的枚举常量:UIControlStateNormal
- highlighted(高亮状态)
- 按钮被按下去的时候(手指还未松开)
- 对应的枚举常量:UIControlStateHighlighted
- disabled(失效状态,不可用状态)
- 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
- 对应的枚举常量:UIControlStateDisabled
现在已经有storyboard了,为什么还需要代码创建按钮呢
- 在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是“固定死”的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上
- 比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的。因此,需要掌握如何用代码动态地添加控件
- 实际上,storyboard的本质就是根据图形界面描述转成相应的代码
纯代码添加按钮的语句
// 1.创建一个自定义的按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
// 2.添加按钮
[self.view addSubview:btn];
// 3.设置按钮的位置和尺寸
btn.frame = CGRectMake(100, 100, 100, 100);
// 4.监听按钮点击(点击按钮后就会调用self的btnClick方法)
[btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
// 5.设置按钮在默认状态下的属性
// 5.1.默认状态的背景
[btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];
// 5.2.默认状态的文字
[btn setTitle:@"点我啊" forState:UIControlStateNormal];
// 5.3.默认状态的文字颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
// 6.设置按钮在高亮状态下的属性
// 6.1.高亮状态的背景
[btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted];
// 6.2.高亮状态的文字
[btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted];
// 6.3.高亮状态的文字颜色
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
transform属性的使用(可以改变位移,缩放,旋转)
- 创建一个transform属性
- CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty) ;
- CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy);
- CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle)
(注意:angle是弧度制,并不是角度制)
- 在某个transform的基础上进行叠加
- CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);
- CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy);
- CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)
- 清空之前设置的transform属性
view.transform = CGAffineTransformIdentity;
UIColor
- 一个UIColor代表一种颜色,通过UIColor的类方法,可以获得很多常用的颜色
- + (UIColor *)blackColor; // 0.0 white黑色
- + (UIColor *)darkGrayColor; // 0.333 white深灰色
- + (UIColor *)lightGrayColor; // 0.667 white亮灰色
- + (UIColor *)whiteColor; // 1.0 white白色
- + (UIColor *)grayColor; // 0.5 white灰色
- + (UIColor *)redColor; // 1.0, 0.0, 0.0 RGB红色
- + (UIColor *)greenColor; // 0.0, 1.0, 0.0 RGB绿色
- + (UIColor *)blueColor; // 0.0, 0.0, 1.0 RGB蓝色
- + (UIColor *)cyanColor; // 0.0, 1.0, 1.0 RGB青色
- + (UIColor *)yellowColor; // 1.0, 1.0, 0.0 RGB黄色
- + (UIColor *)magentaColor; // 1.0, 0.0, 1.0 RGB品红
- + (UIColor *)orangeColor; // 1.0, 0.5, 0.0 RGB橙色
- + (UIColor *)purpleColor; // 0.5, 0.0, 0.5 RGB紫色
- + (UIColor *)brownColor; // 0.6, 0.4, 0.2 RGB棕色
- + (UIColor *)clearColor; // 0.0 white, 0.0 alpha清除颜色(空色)
UIImage
- 一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片(PNG格式的图片可以省略扩展名)
- UIImage *image = [UIImage imageNamed:@"btn_01"];
- IOS开发之UI控件属性
- Ios开发之UI控件
- IOS学习之iOS开发UI基础—手写控件,frame,center和bounds属性
- ios开发之UI基础--transframe属性
- iOS开发之UI基础--纯代码控件.frame,center,bounds属性
- IOS开发UI系列之常用控件 UILabel, UITextField, UIButton, UIImageView等常用属性与方法
- IOS开发之UI控件详解
- iOS开发之UI控件阴影效果
- iOS开发,控件属性
- iOS开发,控件属性
- IOS开发UI—UI控件概览
- 文顶顶 iOS开发UI篇—手写控件,frame,center和bounds属性 iOS开发UI基础—手写控件,frame,center和bounds属性
- IOS之基本UI控件
- IOS之基本UI控件
- iOS UI控件之----UIButton
- iOS- UI控件常见属性总结
- iOS 各种UI控件属性设置
- IOS UI控件 label基础属性使用
- 哈希函数的构造方法
- php5.4后htmlspecialchars输出为空的问题
- 决策树学习
- Git-06_分支
- java反射
- IOS开发之UI控件属性
- 机房合作感受
- CF 89D 题解
- Unity新UI系统概述——Auto Layout
- servlet命名改名需谨慎
- 本学期关于Android学习的总结
- 32位汇编语言学习笔记(11)--条件传送指令
- SpringMVC系列(二)HelloWorld入门
- [应用妹 --第一篇界面演示] android应用市场之快速开发