UI控件

作者: Jorunk | 来源:发表于2018-07-10 21:45 被阅读14次
    1.怎么解决缓存池慢的情况

    iOS不存在缓存池慢的情况,因为通常我们iOS开发中,对象都是在需要的时候才会创建,有种常用的做法叫做懒加载,还有在UITableView中一半只会创建刚开始出现在屏幕中的cell,之后都是从缓存池里取,不会创建新对象,缓存池里最多也就一两个对象,缓存池满的情况一半在开发Java中比较常见,Java中一般吧最近最少使用的对象先释放。

    2.CAAnimation的层级结构
    CAAnimation

    CAPropertyAnimation: 属性动画,是一个基类,一般使用它的两个子类:CABasicAnimation和CAKeyframeAnimation.主要作用于CALayer的属性,使其产生动画效果.

    CAAnimation 详解

    3.UIButton与UITableView的层级结构
      1. 继承结构

    UIButton -> UIControl -> UIView -> UIResponder -> NSObject

    UITableView -> UIScrollView -> UIView -> UIResponder -> NSObject

      1. 内部子控件结构

    UIButton内部子控件结构: 默认有两个, 一个UIImageView, 一个UILable, 分别可以设置图片和文字, button设置属性基本都是set方法

    UITableView内部子控件结构: UITableView中每一行数据都是UITableViewCell, UITableViewCell内部有一个UIView控件 (contentView, 作为其它元素的父控件) , 两个UILable 控件 (textLable, detailTextLable) , 一个UIImageView控件 (imageView) , 分别用于容器, 显示内容, 详情和图片

    4.如何渲染自定义格式字符串的UILable
    • 通过NSAttributeString类
        NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"你好"];
        
        //设置文字颜色
        [str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,1)];
        
        //设置字体
        [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:10] range:NSMakeRange(1, 2)];
    }
    
    5.设置scrollView的contentSize能在viewDidLoad里设置吗?为什么?
    • 当时,view刚刚创建,尺寸未确定
    6.按钮或其他UIView控件的事件传递的具体过程

    史上最详细的iOS之事件的传递和响应机制-原理篇

    7.控制器view的声明周期及相关函数是什么?你在开发中是如何利用的?
    • 1.首先判断控制器是否有视图,如果没有就调用LoadView方法创建:通过stroyboard或者代码
    • 2.随后调用viewDidLoad,可以进行下一步的初始化操作:只会被调用一次
    • 3.在视图显示之前调用viewWillAppear:该函数可以多次调用
    • 4.视图显示之前调用viewWillDisappear:处理保存当前视图的一些信息(如需要)
    • 5.在布局变化前后,调用viewWillDidLayoutSubviews处理相关信息

    相关文章

      网友评论

          本文标题:UI控件

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