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回顾

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