UI基础控件入门1

作者: 冷漠叻荭颜 | 来源:发表于2015-03-22 17:36 被阅读436次

    简单了解

    • 程序执行的过程?
      1. 系统读取Main.storyboard;
      2. 创建箭头所指向的控制器;
      3. 根据storyboard文件中描述创建UIViewController的UIView对象,以及UIView内部的所有子控件;
      4. 将控制器的根view以及内部的子控件显示在屏幕上。
    • UIView和UIViewController?
      1. 屏幕上所有能看的见的东西都是UIView,所有的控件都继承自UIView,UIView是一个容器,能容纳其他的任何控件;
      2. UIViewController用来管理界面上的UIView。每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏的UIView,UIViewController负责管理这个全屏的UIView;
      3. UIViewController就是UIView的大管家,负责创建、显示、销毁UIView,负责监听UIView的内部事件,负责处理UIView与用户的交互;
      4. UIViewController对象内部有一个UIView的属性。
    @property (nonatomic, retain) UIView *view;
    
    • frame、bounds、center的区别?
      1. frame表示尺寸和位置,位置以父控件左上角为坐标原点;
      2. bounds表示尺寸和位置,位置以自己左上角为坐标原点,所以一般bounds的x\y一般为0;
      3. center表示控件的中心点坐标,以父控件的左上角为坐标原点。
    @property (nonatomic) CGRect frame;
    @property (nonatomic) CGRect bounds;
    @property (nonatomic) CGPoint center;
    
    • transform的平移、缩放、旋转?
      1. transform修改控件位置形状,本质是修改了坐标系;
      2. 设置某个子控件的tag属性后,可以通过父控件的viewWithTag:方法找到子控件;
      3. transform的平移、缩放、旋转都有相对于最初状态的改变方式,以及在当前的transform基础上的改变方式;
      4. transform的缩放,参数是缩放的倍数;
      5. transform的旋转:
        • 旋转的参数是弧度;
        • 如果数值是正数的话,顺时针旋转,如果数值是负值的话,逆时针旋转;
        • 特例:如果旋转π,无论正负都是顺时针,如果想逆时针旋转可以设置参数为-(M_PI -M_PI*0.000001)。
    - (UIView *)viewWithTag:(NSInteger)tag; // 根据tag取得当前控件内部的子控件,需要类型强转
    - (void)removeFromSuperview; // 从父控件中移除
    - (void)addSubview:(UIView *)view; // 添加一个子控件view
    imgBtn.transform = CGAffineTransformMakeTranslation(0, -20); // 相对于最初状态的平移
    imgBtn.transform = CGAffineTransformTranslate(imgBtn.transform, 0, -20); // 在当前的transform基础上平移
    imgBtn.transform = CGAffineTransformRotate(imgBtn.transform, M_PI_4); // 在当前transform的基础上顺时针旋转90°
    imgBtn.transform = CGAffineTransformScale(imgBtn.transform, 0.5, 0.5); // 在当前transform的基础上缩放
    imgBtn.transform = CGAffineTransformIdentity; // 清空之前设置的transform
    
    • 懒加载(延迟加载)?
      1. 懒加载:只有当使用的时候才去加载数据,数据只会被加载一次,以后再次使用不再重新加载数据;
      2. 懒加载的使用:重写某个属性的getter方法。

    常见控件

    • 按钮UIButton?
      1. UIButton按钮是由UILabel和UIImageView组成的;
      2. 按钮可以处理点击事件,继承自UIControl;
      3. 按钮既能显示图片又能显示文字。
    + (id)buttonWithType:(UIButtonType)buttonType; // 类方法创建一个按钮对象
    @property(nonatomic) UIEdgeInsets contentEdgeInsets; // 设置按钮内容的边距
    @property(nonatomic) UIEdgeInsets titleEdgeInsets; // 设置按钮中文字的边距
    @property(nonatomic) UIEdgeInsets imageEdgeInsets; // 设置按钮中图片的边距
    @property(nonatomic) BOOL adjustsImageWhenHighlighted; // 高亮状态下是否调整图片
    @property(nonatomic) BOOL adjustsImageWhenDisabled; // 禁用状态下是否调整按钮中的图片
    @property(nonatomic,readonly) UIButtonType buttonType; // 获取按钮的样式
    @property(nonatomic,readonly,retain) NSString *currentTitle; // 获取当前状态下按钮中的文字
    @property(nonatomic,readonly,retain) UIColor *currentTitleColor; // 获取当前状态下按钮中的文字颜色
    @property(nonatomic,readonly,retain) UIImage *currentImage; // 获取当前状态下按钮中的图片
    @property(nonatomic,readonly,retain) UIImage *currentBackgroundImage; // 获取当前状态下按钮中的背景图片
    @property(nonatomic,readonly,retain) UILabel *titleLabel; // 获取按钮中的label属性
    @property(nonatomic,readonly,retain) UIImageView *imageView; // 获取按钮中的imageView属性
    - (void)setTitle:(NSString *)title forState:(UIControlState)state; // 设置不同状态下按钮中的文字
    - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state; // 设置不同状态下按钮中的文字颜色
    - (void)setImage:(UIImage *)image forState:(UIControlState)state; // 设置不同状态下按钮中的图片
    - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state; // 设置不同状态下按钮中的背景图片
    
    • 文本框UITextFiled?
    @property(nonatomic,copy) NSString *text; // 文本框文字
    @property(nonatomic,retain) UIColor *textColor; // 文字颜色
    @property(nonatomic,retain) UIFont *font; // 字体
    @property(nonatomic) NSTextAlignment textAlignment; // 对齐方式
    @property(nonatomic,copy) NSString *placeholder; // 占位符
    
    • 标签UILabel?
    @property(nonatomic,copy) NSString *text; // 标签文字
    @property(nonatomic,retain) UIFont *font; // 文字字体
    @property(nonatomic,retain) UIColor *textColor; // 文字颜色
    @property(nonatomic) NSTextAlignment textAlignment; // 文字对齐方式
    @property(nonatomic) NSInteger numberOfLines; // 设置为0时自动换行
    
    • 图片UIImageView?
      1. UIImageView继承自UIView,默认情况下不能处理点击事件;
      2. 加载图片的两种方式:
        • imageNamed:当图片使用完成后会把图片缓存在内存中不释放;
        • 只占用一组图片的内存,imageWithContentsOfFile:此方法使用时,图片不能放在Imags.xcassets中。
    @property(nonatomic,retain) UIImage *image; // 设置图片
    @property(nonatomic,copy) NSArray *animationImages; // 设置UIImageView的帧动画
    @property(nonatomic) NSTimeInterval animationDuration; // 动画持续时间
    @property(nonatomic) NSInteger animationRepeatCount; // 动画重复次数
    - (void)startAnimating; // 开始动画
    - (void)stopAnimating; // 结束动画
    - (BOOL)isAnimating; // 是否正在执行动画
    
    • 让某个控件产生圆角?
    nameView.layer.cornerRadius = 5;
    nameView.layer.masksToBounds = YES;
    

    相关文章

      网友评论

      本文标题:UI基础控件入门1

      本文链接:https://www.haomeiwen.com/subject/anfgxttx.html