Masonry

  • mas_makeConstraints使用最多,作初始約束,只負責新增約束dom

  • mas_updateConstraints針對make中的約束作更新,通常不添加新約束,只是對於原約束數值的修改.ide

  • mas_remakeConstraints清除以前全部的約束,採用裏面設置的最新約束,經常使用於動畫以後新位置的約束設定函數

  • 優先級高.priorityHigh,優先級低.priorityLow,一般用於根據條件判斷來設定優先響應哪一種約束動畫

  • multipliedBy(x)= *x,dividedBy(x)= /xspa

  • 實現動畫時,更新約束後調用layoutIfNeededcode

make.edges.mas_equalTo(UIEdgeInsetsMake(10, 10, 10, 10));
// edges就是至關於top-left-bottom-right
// top和left裏的offset爲正數

// 那麼爲何bottom和right裏的offset是負數呢? 由於這裏計算的是絕對的數值 計算的bottom須要小ip

於sv的底部高度 因此要-10 同理用於rightci

// 有意思的地方是and和with 其實這兩個函數什麼事情都沒作,能夠省略的
/* 等價於
  make.top.equalTo(weakSelf.sv).with.offset(10);
  make.left.equalTo(weakSelf.sv).with.offset(10);
  make.bottom.equalTo(weakSelf.sv).with.offset(-10);
  make.right.equalTo(weakSelf.sv).with.offset(-10);


  • UIScrollView是一個有點特殊的view,對於在裏面放其餘view,最好的作法是先放一個containerView設置edges相等,而後在此view上添加subview.rem

  • 模仿系統的UITabBarController的底部View,能夠設定個數和間隔:it

- ( void )simulateSystemTabBarWithButtonCount:(NSInteger)count withSpace:(CGFloat) space {
     [self.view showPlaceHolder];
     self.view.backgroundColor = [UIColor grayColor];
     NSMutableArray *viewArray = [NSMutableArray arrayWithCapacity:10];
     
     for ( int i = 0; i < count; i++) {
         UIView *view = [UIView  new ];
         view.backgroundColor = [UIColor colorWithHue:( arc4random() % 256 / 256.0 )
                                           saturation:( arc4random() % 128 / 256.0 ) + 0.5
                                           brightness:( arc4random() % 128 / 256.0 ) + 0.5
                                                alpha:1];;
         [view showPlaceHolder];
         [self.view addSubview:view];
         [viewArray addObject:view];
     }
     UIView *lastView = viewArray.lastObject;
     for ( int i = 0; i < count; i++) {
         UIView *view = (UIView *)viewArray[i];
         [view mas_makeConstraints:^(MASConstraintMaker *make) {
             make.bottom.equalTo(view.superview);
             make.height.equalTo(@49);
             make.width.equalTo(lastView);
             if (i == 0) {
                 make.left.mas_equalTo(view.superview).offset(space);
             else {
                 UIView *frontView = (UIView *)viewArray[i-1];
                 make.left.equalTo(frontView.mas_right).offset(space);
                 (i == viewArray.count - 1) ? make.right.mas_equalTo(view.superview).offset(-space) : nil;
             }
         }];
     }
}
相關文章
相關標籤/搜索