概述
1.UIkit框架
- UI:User Interface 用户跟机器交互的接口.
- 控件:每个UI对象,控件就是UI的类和对象就是昵称.
UIView称为视图/控件/组件.
UIKit框架的基类,类似一个容器,能够容纳其他UIView或其子类. UIView类定义了屏幕上得一个矩形区域 和 管理区域的接口方法.运行时,一个控件(view object) 负责它区域的交互和渲染.
常见属性:
@property (nonatomic,readonly) Uiview* superview; //获得自己的父类对象
@property (nonatomic,readonly,copy) NSArray * subviews //获得自己所有的子控件对象
@property (nonatomic) NSInteger tag //控件的ID标识.
-------------------------------
@property (nonatomic) CGAffineTransform tranform; //控件的形变属性-设置平移.比例缩放.旋转角度
@property (nonatomic) CGRect frame; //位置和尺寸(参照物:父左上为原点)
@property (nonatomic) CGRect bounds; //位置和尺寸(参照物:自身左上为原点)
@property (nonatomic) CGpoint center; //控件中点位置(参照物:父..)
常见方法:
-(void) addSubview:(UIView *) view
//容器里添加一个 子控件
-(void) removeFromSuperview;
//从父控件中移除(仍存在,但不在父控件上了)
-(UIView *) viewWithTag:(NSInteger) tag; //根据tag标识找出子控件.
UIViewcontroller-视图控制器
继承->UIResponder->NSObject.
人如其名,就是管理UIView.-创建.显示.销毁.监听.处理交互.
其实每个UIViewController都有唯一一个UIView属性,他就只负责维护这个UIView以及这个View的相关对象.一对一.
@property (nonatomic,retain) UIView *view;
interface builder ->简称IB 界面构建器
IBAction:作方法返回值,类似void.可拉出去公示.连线方法(监听)
IBOutlet:—表示可拉出去公示的属性(即可连线属性)
连线问题:
项目复制的时候,连线系统不会自动跳转,还会连到源路径代码. 可以改成automatic自动.
有时发现无法通过代码修改控件位置尺寸,去掉autolayout自动布局功能.此功能对控件有一些固定的束缚.
storyboard
本质就是可以根据图形界面描述转成相应的代码.(方便菜��设计用的).
但是,这种控件是”固定死”的界面.
而很多控件是需要在程序运行过程中动态出现的.如刷新新闻.–此时,就需要纯代码创建UI控件.
- 纯代码->易于维护,更新,功能丰富
- storyboard -> 快.
所以固定的控件可以用storyboard 拖.
代码创建的话写在viewDidLoad方法中,这个在一开始系统自动调用.
2.UIView常用子控件及使用
继承自基类的公共属性的一般功能:
- frame:能修改位置和尺寸.(CGRect)
- center:只能修改位置.(CGpoint)
- bounds:一般只能修改尺寸(xy一般都是0,类似只读,移动后系统赋值)(CGRect)
transform: 矩阵—强大的图形变换 CGAffiliateTransForm
控制图形:
思路:1,先取出参数–>2.改变参数–>3.赋值回去.
CGRect rect=self.控件名.frame; 不允许直接修改 对象 的 结构体属性 的成
// 允许直接 对象 的 结构体 属性
rect.CGPoint.x+=10; //右移10.
self.控件.frame=rect; //赋值回去. 若是对象类型,取值赋值就需要调用方法了,后面会常用到.
frame/bounds/center用法类似
使用transforme属性控制图形时,思路一致.
1.取出:
CGAffiliateTransForm transfrom=self.控件.transfrom;
2.改变:
1),平移:
transform = CGAffineTransformTranslate(transform, 10, 0);
2),缩放:
transform = CGAffineTransformScale(transform, 1.05, 1.05);3),旋转://angle 角度; 逆时针传入负数,顺时针传入正数; M_PI 180度
transform = CGAffineTransformRotate(transform, M_PI_2);
3.赋值回去:
self.控件.transfrom=transform;
UIview的简单动画
1, 头尾式动画
// 开始动画
[UIView beginAnimations:nil context:nil];
// 设置持续时间
[UIView setAnimationDuration:1.0];
/********************************/
需要执行动画的代码
// 把临时transform对frame进行复制
self.imgButton.transform = transform;
/********************************/
// 提交动画
[UIView commitAnimations];
2,// MARK: Block, 动画
[UIView animateWithDuration:1.0 animations:^
{
/********************************/
需要执行动画的代码
// 把临时transform对frame进行复制
self.imgButton.transform = transform;
/********************************/
}];
UIView的常用子控件:
1.UILabel:显示输出文本框.
作用就是显示一串固定文字.
常见属性:
1,@property(nonatomic,copy) NSString *text;//文本内容
2,@property(nonatomic,retain) UIFont *font;//字体
示例:label.font = [UIFont systemFontOfSize:15.0];
3,@property(nonatomic,retain) UIColor *textColor;//文本颜色 [UIColor redcolor].CGColor
4,@property(nonatomic,retain) UIColor *shadowColor;//文本阴影颜色
5,@property(nonatomic) NSTextAlignment textAlignment;//文本的对齐显示方向 左中右 默认左边对齐 (枚举类型,一般看到老长的还不带*号,十有八九是枚举)
示例:label.textAlignment = NSTextAlignmentCenter;//设置文本居中显示
6,@property(nonatomic) NSInteger numberOfLines;//label上面显示几行文本内容
2.UIBurrton:既显示图片和文本,又要监听点击
UIButton的几种状态:
- UIControlStateNormal 默认状态;
- UIControlStateHighlighted 高亮状态
- UIControlStateSelected 选中状态
- UIControlStateDisabled 不可操作状态
每种状态都可单的设置属性.(另外还分几种type目前知道自定义和系统定义两种)
常见属性:
由于UIButton继承自UIControl,所以我们学UIButton的属性的时候,先看一下UIControl的常见属性
1,UIControl常见属性:
1>,@property(nonatomic,getter=isEnabled) BOOL enabled;//是否禁用状态,默认为YES,为不禁用 //可设置某些条件禁用
2>,@property(nonatomic,getter=isSelected) BOOL selected; //是否选中状态,默认为NO,不选中状态
3>,@property(nonatomic,getter=isHighlighted) BOOL highlighted;//是否为高亮状态,默认为NO,不为高亮状态
4>,@property(nonatomic,readonly) UIControlState state; //设置当前状态为,普通,高亮,选中,禁用等
5>还有系统给的UIlabel和UIImage ,使UIButton可以显示文本和图片
UIButton的常见方法:
1>,- (void)addTarget:(id) target action: (SEL) action forControlEvents:(UIControlEvents) controlEvents;//添加监听事件
2>,- (void)removeTarget:(id) target action: (SEL) action forControlEvents:(UIControlEvents) controlEvents;//移除监听事件**
--------------------------------
/******************UIButton的常见属性******************/
1>,@property(nonatomic,readonly,retain) NSString *currentTitle; //获取当前button上显示的文字
2>,@property(nonatomic,readonly,retain) UIColor *currentTitleColor; //获取当前button上显示文字的颜色
3>,@property(nonatomic,readonly,retain) UIImage *currentImage; //获取当前button上显示的图片
4>,@property(nonatomic,readonly,retain) UIImage *currentBackgroundImage;//获取当前button上的背景图片
/******************UIButton的常见方法******************/
1>,- (void)setTitle:(NSString *)title forState:(UIControlState)state; //设置不同状态下显示的按钮文字
2>,- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;//设置不同状态下显示的按钮文字颜色
3>,- (void)setImage:(UIImage *)image forState:(UIControlState)state; //设置不同状态下按钮显示的图片
4>,- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;//设置不同状态下按钮显示的背景图片
3.UITextField:文本输入框
常见属性
1>,@property(nonatomic,copy) NSString *text;//设置或获取输入框上面的文本内容
2>,@property(nonatomic,retain) UIColor *textColor;//设置输入框上文本内容的颜色
3>,@property(nonatomic,retain) UIFont *font; //设置输入框上文本的字体
4>,@property(nonatomic) NSTextAlignment textAlignment; //设置输入框文本的对齐方式
5>,@property(nonatomic,copy) NSString *placeholder;//设置输入框上的提示语
6>,@property(nonatomic) UIKeyboardType keyboardType; //设置输入框键盘类型
7>,@property(nonatomic,getter=isSecureTextEntry) BOOL secureTextEntry; //设置输入框是否显示加密效果
8>,@property(nonatomic) UITextFieldViewMode clearButtonMode;//设置输入框删除按钮的类型 (一般没*都是枚举)
注意点:
- 在UITextField框中输入时,会自动弹出键盘,输入结束却不会退出,可在点击监听方法中:
隐藏键盘两种方式:
1>,- (BOOL)resignFirstResponder;//取消第一响应者
例如:
[self.num1TextField resignFirstResponder:YES];
2>,- (BOOL)endEditing:(BOOL)force;//这是UIView的对象方法,意思是让View上所有的输入框隐藏键盘
例如:
[self.view endEditing:YES];
- 手动创建UI控件的实现:
思路:1,创建按钮->2,添加按钮到视图->3,设置位置尺寸背景颜色等.->4,监听点击
// 视图加载完成 系统自动调用该方法
- (void)viewDidLoad {
[super viewDidLoad];
// 1. 创建一个自定义的按钮
UIButton *iconButton = [[UIButton alloc] init];
// 2. 将按钮添加到self.view (控制器的根视图) 中
[self.view addSubview:iconButton];
// 3. 设置按钮的位置和尺寸
iconButton.frame = CGRectMake(100, 100, 100, 100);
// 4. 监听按钮点击 (点击按钮后就会调用self的iconBtnClick方法) IBAction就相当于addTarget方法
[iconButton addTarget:self action:@selector(iconBtnClick) forControlEvents:UIControlEventTouchUpInside];
/******************************************/
// 5. 设置按钮在默认状态下的属性
// 5.1 默认状态下的背景图片--PNG格式可以不写后缀.
[iconButton setBackgroundImage:[UIImage imageNamed:@"img_01"] forState:UIControlStateNormal];
// 5.2 默认状态下的文字
[iconButton setTitle:@"点我呀!" forState:UIControlStateNormal];
// 5.3 默认状态下的文字颜色
[iconButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
/******************************************/
}
- (IBAction)iconBtnClick {
NSLog(@"iconBtnClick按钮被点击了!");
}
这是iOS应用事件的处理方式中的一种,另外两种是:拖线和委托代理.
最后
以上就是安静荷花为你收集整理的UI基本三控件的全部内容,希望文章能够帮你解决UI基本三控件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复