20160905: 自定制 tabBar, † 老师的



//这个方法是用来给视图重新布局的
- (void)layoutSubviews {
    [super layoutSubviews];
    
    NSLog(@"%@", self.subviews);
    
    //修改约束
    CGFloat btnW = kScreenWidth/5;
    
    //循环修改约束
    __block int index = 0;
    for (UIView *subView in self.subviews) {
        
        //判断是否是按钮
        //UIButton
        //UITabBarButton
        if ([subView isKindOfClass:[UIControl class]]) {
            //修改序号
            if ([subView isKindOfClass:[UIButton class]]) {
                
                //添加按钮
                CGFloat offsetX = kScreenWidth/2-40.0/2;
                subView.frame = CGRectMake(offsetX, 4, 40, 40);
            }else{
                
                //默认的tabBarItem的按钮
                if (index > 1) {
                    subView.x = btnW*(index+1);
                }else{
                    subView.x = btnW*index;
                }
                
//                lastFrame.size.width = btnW;
//                subView.frame = lastFrame;
                
                index ++;
            }
        }

        
        /*
        if ([subView isKindOfClass:[UIControl class]]) {
            
            [subView mas_updateConstraints:^(MASConstraintMaker *make) {
                //make.left.equalTo(btnW*1);
                
                //修改序号
                if ([subView isKindOfClass:[UIButton class]]) {
                    
                    //添加按钮
                    make.left.mas_equalTo(btnW*2);
                    make.top.mas_equalTo(4);
                    make.size.mas_equalTo(CGSizeMake(40, 40));
                }else{
                    
                    //默认的tabBarItem的按钮
                    if (index > 1) {
                        make.left.mas_equalTo(btnW*(index+1));
                    }else{
                        make.left.mas_equalTo(btnW*index);
                    }
                    
                    index ++;
                }
                
            }];
            
            
            //1.创建新的约束并添加
            //subView mas_makeConstraints:<#^(MASConstraintMaker *make)block#>
            
            //2.重新创建约束并添加,同时删除之前的约束
            //subView mas_remakeConstraints:<#^(MASConstraintMaker *make)block#>
            
            //3.更新约束,同时保留之前的约束
            //subView mas_updateConstraints:<#^(MASConstraintMaker *make)block#>
            
        }
        
       */
    }
    
    
}


你可能感兴趣的:(20160905: 自定制 tabBar, † 老师的)