1.在我們的項(xiàng)目中很多時(shí)候都會(huì)有使用xib來設(shè)置TableView的HeaderView或者和tableFooterView的情況私恬,這是遇到的問題
2在這之前介紹autoResizingMask
枚舉類型勾哩,當(dāng)父視圖bounds改變時(shí)嗓蘑,自動(dòng)調(diào)節(jié)子控件在父視圖中的位置與寬高
枚舉類型:
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0, //不自動(dòng)調(diào)整俱萍。
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,//自動(dòng)調(diào)整view與父視圖左邊距恩商,以保證右邊距不變
UIViewAutoresizingFlexibleWidth = 1 << 1,//自動(dòng)調(diào)整view的寬度片任,保證左邊距和右邊距不變
UIViewAutoresizingFlexibleRightMargin = 1 << 2,//自動(dòng)調(diào)整view與父視圖右邊距础浮,以保證左邊距不變
UIViewAutoresizingFlexibleTopMargin = 1 << 3,//自動(dòng)調(diào)整view與父視圖上邊距刹悴,以保證下邊距不變
UIViewAutoresizingFlexibleHeight = 1 << 4,//自動(dòng)調(diào)整view的高度垛孔,以保證上邊距和下邊距不變
UIViewAutoresizingFlexibleBottomMargin = 1 << 5 //自動(dòng)調(diào)整view與父視圖下邊距提针,以保證上邊距不變
};
3.TableHeaderView的使用方法
1.新建工程命爬,在ViewController中添加一個(gè)TableView。
2.新建個(gè)類FDTableHeaderView辐脖,設(shè)置背景色為淺灰色饲宛。并添加一個(gè)Label控件作為我們改變之后動(dòng)態(tài)改變TableHeaderView的工具。
3.在controller中通過xib聲明一個(gè)FDTableHeaderView對(duì)象嗜价,設(shè)置tableview的tableHeaderView
如下代碼:
//在這里我們可以簡(jiǎn)單假設(shè)下艇抠,如果把header的AutoResizingMask設(shè)置為None,不讓header隨著父視圖的改變而改變久锥,會(huì)有什么效果家淤?
UINib *nib = [UINib nibWithNibName:@"FDTableHeaderView" bundle:nil];
FDTableHeaderView *header = [nib instantiateWithOwner:nil options:nil][0];
//這個(gè)是重點(diǎn):
header.autoresizingMask = UIViewAutoresizingNone;
self.tableView.tableHeaderView = header;