OC学习笔记——基础控件篇

因为之前做iOS开发用的都是swift语言,没有用过oc,本篇博客整理一下UIKIt中组件基于oc的使用,顺便把每个组件在秋招中遇到的问题整理一下。

UIView的使用

UIView继承链:NSObject->UIResponder->UIView

UIView生命周期:

loadView或nib文件加载view到内存 -> viewDidLoad函数初始化这些view -> 内存不足时, 调用viewDidUnload函数释放views -> 当需要使用view时回到第一步

UIView和CALayer的区别:

1.功能不同,为了实现单一原则,降低耦合性,我们使用了UIView和CALayer,其中UIView主要是负责响应事件,而CALayer主要是为了进行视图的绘制和渲染

2.绘制方式不同,UIView是通过drawRect方法进行绘制的,而CALayer则是通过设置属性来进行绘制

3.渲染方式不同:UIView是通过Core Animation进行渲染的,而CALayer则是直接通过OpenGL进行渲染

4.动画支持不同:UIView可以通过UIView动画来实现动画效果,而CALayer可以通过Core Animation来实现动画效果

不过由于性能原因我们一般使用Layer进行绘制、渲染和动画

oc语言UIView的使用

 UIView *view = [[UIView alloc] init];
    view.backgroundColor = [UIColor redColor];
    view.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:view];
//也可以在初始化的时候实现frame的建立——initWithFrame方法
 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

 //layer
 CALayer * layer = [CALayer layer];
 Layer.frame = CGRectMake(0, 0, 100, 100);
 Layer.backgroundColor = xxx;
 [self.View.layer addSublayer:layer];

UITableView的使用

Tableview复用池机制:主要通过cell ID标识,具体在实现tableView内的函数通过switch case–index.section/row实现不同cell的实现

可以先说一下我在swift中(比较简单)的使用:VC设置String类型的Cell ID,先lazy一个tableView,在里面把一些属性实现,在extension这个VC,在里面实现delegate和datasource,在这里实现indexpath.row/section,设置每个cell对应哪个View,再去实现相应View

由于代码维护问题,所以在大型项目中用type作为判断条件而不是indexpath

to be continue…

相关推荐

  1. OC学习笔记——基础

    2023-12-24 13:06:03       49 阅读
  2. Qt-

    2023-12-24 13:06:03       32 阅读
  3. c#笔记

    2023-12-24 13:06:03       28 阅读
  4. c#学习笔记:CheckedListBox的用法

    2023-12-24 13:06:03       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 13:06:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 13:06:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 13:06:03       87 阅读
  4. Python语言-面向对象

    2023-12-24 13:06:03       96 阅读

热门阅读

  1. 遗传算法及其在稀疏阵列中的应用

    2023-12-24 13:06:03       57 阅读
  2. leetcode 30. 串联所有单词的子串

    2023-12-24 13:06:03       68 阅读
  3. Python函数和模块

    2023-12-24 13:06:03       56 阅读
  4. tamarin manual总结笔记3(加密消息)

    2023-12-24 13:06:03       54 阅读
  5. gulp和webpack的区别

    2023-12-24 13:06:03       58 阅读
  6. Sonar测试:探索软件质量的新境界

    2023-12-24 13:06:03       67 阅读
  7. 【每日一题】力扣:课程表Ⅱ

    2023-12-24 13:06:03       69 阅读