自定義tabbar與按鈕的添加
01 - 把系統的tabbar用我們自己的覆蓋
LHQTabBar *lhqTabBar = [[LHQTabBar alloc]init];
[self setValue:lhqTabBar forKeyPath:@"tabBar"];
02 對於系統私有的屬性,可以通過運行時或者KVC
03 設置每個tabbar的位置
//2 調整UItabbarBtn的大小
//2.1先定義每個tabbar的寬度
CGFloat tabbarBtnW = self.width *0.2;
//2.2for 循環遍歷所有的子控件
NSInteger index = 0;
for (int i = 0;i < self.subviews.count;i++){
//2.3 拿到每一個子控件
UIView *view = self.subviews[i];
//2.4判斷是否是UITabBarButton這個子控件
if([viewisKindOfClass:NSClassFromString(@"UITabBarButton")]){
view.width = tabbarBtnW;
view.x = index*tabbarBtnW;
index ++;
if(index == 2){
index++;
}
//
// if(index == 1){
// index++;
//
// }
// index ++;
}
}
04 什么時候用代理,什么時候用block
如果一個自定義控件要拋出的消息比較多用代理,如果一個或者兩個的話,用block也沒有問題
代理跟協議的區別
協議是寫好的規則,代理是要遵守的東西
