UI基本三控件

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:一般只能修改尺寸(x\y一般都是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的几种状态:

  1. UIControlStateNormal 默认状态;
  2. UIControlStateHighlighted 高亮状态
  3. UIControlStateSelected 选中状态
  4. 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应用事件的处理方式中的一种,另外两种是:拖线和委托代理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值