iOS-Masonry九宮格布局終極版(for循環(huán))

#pragma mark ========== Masonry九宮格布局 S=========================
    
    //九宮格的父視圖
    UIView * jggContentView = [[UIView alloc]init];
    self.jggContentView = jggContentView;
    [self addSubview:jggContentView];
    [jggContentView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(imageBk.mas_bottom).mas_offset(18);
        make.left.right.mas_equalTo(0);
    }];
    
    NSArray * arrayTitle = @[@"我的房屋",@"物業(yè)報修",@"我的收藏",@"我的消息",@"我的管家",@"設(shè)置"];
    NSArray * arrayImage = @[@"我的房屋",@"物業(yè)報修",@"我的收藏",@"我的消息",@"我的管家",@"我的設(shè)置"];
    int SPNum = 3;//水平一行放幾個
    CGFloat JGGMinX = 20;//起始x值
    CGFloat JGGMinY = 0;//起始y值
    CGFloat SPspace = 10;//水平距離
    CGFloat CXspace = 40;//垂直距離
    CGFloat widthJGG = (SCREEN_WIDTH- JGGMinX * 2 -SPspace * (SPNum-1)) / SPNum ;//九宮格寬
    CGFloat heightJGG = 80;//九宮格高

    for ( int  i = 0; i < arrayTitle.count ; i++) {
        //圖片
        UIButton * buttonBig = [UIButton buttonWithType:UIButtonTypeCustom];
        buttonBig.imageView.contentMode = UIViewContentModeScaleAspectFill;
        buttonBig.clipsToBounds = YES;
        [buttonBig setImage:[UIImage imageNamed:arrayImage[i]] forState:UIControlStateNormal];
        [buttonBig setTitle:arrayTitle[i] forState:UIControlStateNormal];
        [buttonBig setTitleColor:MAIN_COLOR_333333 forState:UIControlStateNormal];
        buttonBig.titleLabel.font = [UIFont systemFontOfSize:14];
        [buttonBig addTarget:self action:@selector(ActionButtonBig:) forControlEvents:UIControlEventTouchUpInside];
        buttonBig.tag = 1001+i;
        [buttonBig setImagePositionWithType:SSImagePositionTypeTop spacing:10];
        [jggContentView addSubview:buttonBig];
        
        [buttonBig mas_makeConstraints:^(MASConstraintMaker *make){
            make.left.mas_equalTo(JGGMinX + i % SPNum * (widthJGG + SPspace));
            make.top.mas_equalTo(JGGMinY + i / SPNum * (heightJGG + CXspace));
            make.width.mas_equalTo(widthJGG);
            make.height.mas_equalTo(heightJGG);
            //不能再這里跟新約束,否則會警告,控件錯位
        }];
        
#pragma mark ======= 最后跟新父視圖約束 ====================
        if (i==arrayTitle.count-1) {
            //跟新約束
            [jggContentView mas_updateConstraints:^(MASConstraintMaker *make) {
                make.bottom.mas_equalTo(buttonBig.mas_bottom).offset(0);
            }];
        }
    }

 #pragma mark ========== Masonry九宮格布局 E=========================
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容