2

私は Masonay を使用して UI を次のようにレイアウトしています: UI 要件

9点のサイズは同じです。また、9 ポイント間のマージンは同じです。私の質問は、 Masonay を使用して、最初の列ポイントの左マージンを最後の列ポイントの右マージンと等しくする方法です。私のコードブローは完全ではありません。誰でもこれで私を助けることができますか?

for (NSInteger i = 0; i < 9; i++) {
    NSInteger row = i / 3;
    NSInteger column = i % 3;
    UIView * previousRowPoint;
    UIView * previousColumnPoint;
    UIView * firstPoint;
    if (row > 0) {
        previousRowPoint = hintPoints[(row - 1) * 3];
    }
    if (column > 0) {
        previousColumnPoint = hintPoints[column - 1];
    }
    if (0 != i) {
        firstPoint = hintPoints[0];
    }
    UIView * hintPoint = [[UIView alloc] init];
    [hintPoints addObject:hintPoint];
    hintPoint.layer.cornerRadius = 8 / 2;
    hintPoint.layer.masksToBounds = YES;
    hintPoint.layer.borderColor = [UIColor grayColor].CGColor;
    hintPoint.layer.borderWidth = 0.5;
    [self.view addSubview:hintPoint];
    hintPoint.mas_key = [NSString stringWithFormat:@"hintPoint_%ld", (long)i];
    [hintPoint mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(8);
        make.height.mas_equalTo(8);

        if (row == 0) {
            make.top.equalTo(weakself.view).offset(100);
        }
        else {
            make.top.equalTo(previousRowPoint.mas_bottom).offset(4);
        }

        if (column == 0) {
            //TODO: how to make the trailing equal to the first point's leading
        }
        else if (column == 2) {
            //TODO: how to make the trailing equal to the first point's leading
        }
        else {
            make.leading.equalTo(previousColumnPoint.mas_trailing).offset(4);
        }
    }];
}
4

0 に答える 0