九宮格(view,button)計算

/**
 * 創(chuàng)建方塊
 */
- (void)createSquares:(NSArray *)sqaures
{
    // 一行最多4列
    int maxCols = 4;
    
    // 寬度和高度
    CGFloat buttonW = XMGScreenW / maxCols;
    CGFloat buttonH = buttonW;
    
    for (int i = 0; i<sqaures.count; i++) {
        // 創(chuàng)建按鈕
        XMGSqaureButton *button = [XMGSqaureButton buttonWithType:UIButtonTypeCustom];
        // 監(jiān)聽點擊
        [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
        // 傳遞模型
        button.square = sqaures[i];
        [self addSubview:button];
        
        // 計算frame
        int col = i % maxCols;
        int row = i / maxCols;

        button.x = col * buttonW;
        button.y = row * buttonH;
        button.width = buttonW;
        button.height = buttonH;
    }
    
    // 8個方塊, 每行顯示4個, 計算行數(shù) 8/4 == 2 2
    // 9個方塊, 每行顯示4個, 計算行數(shù) 9/4 == 2 3
    // 7個方塊, 每行顯示4個, 計算行數(shù) 7/4 == 1 2
    
    // 總行數(shù)
//    NSUInteger rows = sqaures.count / maxCols;
//    if (sqaures.count % maxCols) { // 不能整除, + 1
//        rows++;
//    }
    
    // 總頁數(shù) == (總個數(shù) + 每頁的最大數(shù) - 1) / 每頁最大數(shù)
    
    NSUInteger rows = (sqaures.count + maxCols - 1) / maxCols;
    
    // 計算footer的高度
    self.height = rows * buttonH;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容