自定义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也没有问题
代理跟协议的区别
协议是写好的规则,代理是要遵守的东西
时间: 2024-10-05 23:27:30