美文网首页
1.TableView头部使用xib注意的问题

1.TableView头部使用xib注意的问题

作者: 峰子1994 | 来源:发表于2017-12-13 12:12 被阅读379次

    1.在我们的项目中很多时候都会有使用xib来设置TableView的HeaderView或者和tableFooterView的情况,这是遇到的问题

    2在这之前介绍autoResizingMask

    枚举类型,当父视图bounds改变时,自动调节子控件在父视图中的位置与宽高
    

    枚举类型:

    typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                               = 0, //不自动调整。
    UIViewAutoresizingFlexibleLeftMargin       = 1 << 0,//自动调整view与父视图左边距,以保证右边距不变
    UIViewAutoresizingFlexibleWidth                = 1 << 1,//自动调整view的宽度,保证左边距和右边距不变
    UIViewAutoresizingFlexibleRightMargin     = 1 << 2,//自动调整view与父视图右边距,以保证左边距不变
    UIViewAutoresizingFlexibleTopMargin        = 1 << 3,//自动调整view与父视图上边距,以保证下边距不变
    UIViewAutoresizingFlexibleHeight               = 1 << 4,//自动调整view的高度,以保证上边距和下边距不变
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5 //自动调整view与父视图下边距,以保证上边距不变
    };
    

    3.TableHeaderView的使用方法

    1.新建工程,在ViewController中添加一个TableView。
    2.新建个类FDTableHeaderView,设置背景色为浅灰色。并添加一个Label控件作为我们改变之后动态改变TableHeaderView的工具。
    3.在controller中通过xib声明一个FDTableHeaderView对象,设置tableview的tableHeaderView
    如下代码:
    //在这里我们可以简单假设下,如果把header的AutoResizingMask设置为None,不让header随着父视图的改变而改变,会有什么效果?
    UINib *nib = [UINib nibWithNibName:@"FDTableHeaderView" bundle:nil];
    FDTableHeaderView *header = [nib instantiateWithOwner:nil options:nil][0];
    //这个是重点:
    header.autoresizingMask = UIViewAutoresizingNone;
    self.tableView.tableHeaderView = header;

    相关文章

      网友评论

          本文标题:1.TableView头部使用xib注意的问题

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