UI回顾

作者: 刘建Chris | 来源:发表于2019-11-08 15:09 被阅读0次

UITableView

  1. -dequeueReusableCellWithIdentifier: forIndexPath:
    为什么要带IndexPath?
IndexPath 作用:该方法会根据cell的位置IndexPath,进行额外的配置
比如,从heightForRow方法中给cell配置高度

调用这个方法,具体内部怎么处理?

如果在重用池里面,有这个Identifier的cell, 则返回这个cell,cell里面会调用 -prepareForReuse方法;如果没有,则创建一个新的cell,如果是nib、storyboard,cell会调用-initWithCoder: , 如果是注册的cell , 则会调用-initWithStyle:reuseIdentifier:
  1. separatorInset
[table setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 50)];
这个属性,用来设置自带的分割线边距
我几乎不用,因为系统的分割线经常满足不了设计(比如组末cell隐藏需求,如果要实现也要根据index控制cell, 而且颜色难调,group模式,组头组尾都是满行分割线),还不如自己cell中写一个线
  1. layoutMargins、directionalLayoutMargins 这两个属性
    有待研究,研究布局的时候一起研究

  2. UIScrollView自动设置内边距问题

IOS 11以前 
    当 automaticallyAdjustsScrollViewInsets 为YES(默认) 时,scrollView与, a status bar, search bar, navigation bar, toolbar, or tab bar 重合时候,系统会给scrollView设置内边距,防止scrollView被遮挡显示不全
    IOS 11以后
当contentInsetAdjustmentBehavior 为 UIScrollViewContentInsetAdjustmentAutomatic(默认) 时,scrollView 不在安全区域(不在上边的bar,以及底部hom条的区域),系统会给scrollView设置内边距,防止scrollView被遮挡显示不全

但是有些情况这样设置效果不好,比如说,想整屏幕都是tableView,无导航条,tableView的headerView被status bar遮挡也无所谓,这种情况下, 自动内边距导致顶部难看,就需要取消自动内边距

if (@available(iOS 11.0, *)) {
    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

如果设置不自动内边距后,还想底部适配安全区域,可以自己适配
if (@available(iOS 11.0, *)) {
        table.contentInset = UIEdgeInsetsMake(0, 0, [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom, 0);
    }

  1. contentSize、contentInset
  1. 布局
    UINavigationController 的导航条 控制器的view顶部截取掉
截取时机
    -viewWillAppear 方法中未截取
    -viewWillLayoutSubviews方法中已经截取了(未调用[super viewWillLayoutSubviews]方法时已经截取了)

所以截取时机在以上2方法之间

控制器生命周期:
-viewDidLoad
-viewWillAppear
-viewWillLayoutSubviews
-viewDidLayoutSubviews
-viewDidAppear
-dealloc

相关文章

  • UI回顾

    UITableView -dequeueReusableCellWithIdentifier: forIndexP...

  • UI手势回顾

    UIGestureRecongnizer手势识别器 手势:有规律的触摸 UIGestureRecognizer抽象...

  • UI基础控件回顾

    一、UILabel 1.背景颜色 backgroundColor 2.文本内容颜色 textColor 3.内容 ...

  • android回顾之二 UI

    UI user interface,UI由view和viewGroup组成 view是所有视图空间(包括viewG...

  • vue 上传图片

    闲暇时间回顾一下写的东西。vue上传图片。UI框架是iView ,element-ui原理相同先看下效果图 实现上...

  • 2021年我应该使用哪种UI设计工具?

    我们先来回顾一下现阶段各大UI设计工具的概况 现阶段,UI设计工具已经蛮饱和的了。自从Sketch以其光滑、简单、...

  • iOS 知识小册子 第二期

    这期主要回顾一些 UI 的知识点 1. loadView, viewDidLoad 和 viewDidUnload...

  • UI总结-导航控制器NavigationController

    UI总结-导航控制器NavigationController 今天回顾了一下导航控制器NavigationCon...

  • Android基础04-基本控件及表单三大控件

    一、控件回顾: (一)、需要掌握的n个UI控件、组件名称: (二)、基本控件:——TextView: 1、ando...

  • Appium UI自动化回顾

    去年做的ui自动化项目,到现在公司早已经弃用了。想着当时踩了很多坑,现在回顾记录一下。首先是gradle的配置 看...

网友评论

      本文标题:UI回顾

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