App入门与UIKit简介(下)| 青训营笔记

177 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第11天

App入门与UIKit简介(下)| 青训营笔记

UIKit实战

自学部分

storyboard(拖拽UI)

  1. Action操作
    1. 响应式操作,运行函数
  2. Outlet属性
    1. 读写属性
  3. 第一响应者
    1. resignFirstResponder
    2. [self.view endEditing:Yes]
  4. 按钮
    1. stackoverflow.com/questions/7…
  5. UI组件
    1. frame,类型CGRect
      1. 坐标origin:左上角
        1. x
        2. y
      2. 大小size
        1. width
        2. height
    2. center,类型CGPoint,中心点
      1. x
      2. y
    3. bounds,类型CGRect,大小
      1. origin的xy始终为0
      2. size有height/width
  6. 修改OC对象中的结构体属性,要先取值,操作,再重新赋值
  7. 简易动画
    1. 头尾式
      1. 开启:[UIView beginAnimations:nil context:nil];
      2. 设置执行时间:[UIView setAnimationDuration:2];
      3. //代码
      4. 提交动画:[UIView commitAnimations];
    2. block式
      1. [UIView animateWithDuration:0.5 animations:^{代码}];
  8. 如果没有按预期执行:关闭自动布局
    1. storyboard的属性,use Autolayout

动态加载UI组件(用代码)

  1. 生命周期:app显示页面过程
    1. 创建要显示界面的控制器ViewController
    2. 创建控制器管理的view
    3. View加载完毕后,执行控制器ViewController里的方法
  2. viewDidLoad{}
    1. View创建并加载完成时执行:动态创建的按钮/其他组件,应该在这里声明
  3. 动态创建按钮
    1. 创建按钮
      1. UIButton *button = [[UIButton alloc] init];
    2. 初始化&设置
      1. 文字[button setTitle:@“x” forState:UIControlStateNormal];
      2. 文字颜色[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
      3. 背景图片[button setBackgroundImage:[UIImage imageNamed:@“btn_01”] forState:UIControlStateNormal];
      4. 设置大小butotn.frame = CGRectMake(50,100,100,100);
    3. 添加事件
      1. Button addTarget:(id触发对象) action:(SEL回调函数) forControlEvents:(UIControlEvents事件名)
    4. 定义回调函数
    5. 将动态创建的按钮,加入控制器管理的view中
      1. [self.view addSubview:button];

UICollectionView

file-1603722781157.png

  1. UICollectionView UI基本单元:4个部分
    1. 内容基本单元:Cell
    2. 章节:Section
    3. 扩充视图:章节的header和footer
    4. 装饰视图:背景视图backgroundView
  2. UICollectionView核心
    1. 布局:Layout
    2. 数据代理:DataSource
      1. 遵循UICollectionviewDatasource协议
    3. 行为代理:Delegate
      1. 遵循UICollectionViewDelegate协议
  3. 数据代理协议UICollectionViewDatasource中的4个方法
    • 指定Section有多少Cell:collectionView:numberOfItemsInSection:
    • 指定视图中节的个数:numberOfSectionsInCollectionView:
    • 指定单元格显示的数据:collectionView:cellForItemAtIndexPath:
    • 指定补充视图显示的数据:collectionView:viewForSupplementaryElementOfKind:atIndexPath:
  4. 集合视图单元格(自定义继承自UICollectionViewCell)
    1. 每个单元格都是一个View,需要在视图的构造函数中实例化属性
    2. 重用单元格:
      1. 需要在初始化时注册需要重用的cell
      2. 可重用单元格标识identifier:通过可重用单元格标识符可以**从集合视图中获取可重用的单元格。
//注册可重用Cell,如在viewDidLoad中注册
[self registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"AACells"]:
[self registerClass:[customizedCollectionViewCell class] forCellWithReuseIdentifier:@"BBCells"];
(UICollectionViewCell *)collectionView: (UICollectionView *)collectionView cellForItemAtIndexpath: (NSIndexpath *) indexpath
// 从Cell可重用队列中根据Identifier取出Cell
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier: @"AACells" forIndexPath: indexPathl:
cell.backgroundColor = [UIColor redColor];
return cell;