搜索

首页  >  问答  >  正文

ios - oc 如何获得用 Masonry 约束好的宽度?

oc 如何获得用 Masonry 约束好的宽度?
例子:

/// 怎样获取里面约束好的 45 呢?请问!!
    [self.choseCityBtn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(@(12));
        make.width.equalTo(@(45));
        make.height.equalTo(@(24));
        make.centerY.equalTo(@(navCenterY));
    }];
阿神阿神2771 天前822

全部回复(4)我来回复

  • 高洛峰

    高洛峰2017-04-18 09:45:42

    在View里

    - (void)layoutSubviews {
        [super layoutSubviews];
    
        // 获取到约束后的控件frame
    }

    在controller里

    - (void)viewDidLayoutSubviews {
        [super viewDidLayoutSubviews];
    
        // 获取到约束后的控件frame
    }

    参考资料: https://github.com/SnapKit/Ma...
    其他资料: http://elijahdou.github.io/ui...

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:45:42

    1. 把45提取出来作为一个变量

    2. 所有通过masonry加载约束,可以通过
      NSArray *installedConstraints = [MASViewConstraint installedConstraintsForView:self.choseCityBtn]

    获得。
    然后你循环遍历数组,找到你要的那个约束就好了

    回复
    0
  • 迷茫

    迷茫2017-04-18 09:45:42

    从 NSConstraint 里面拿。

    回复
    0
  • 迷茫

    迷茫2017-04-18 09:45:42

    设置完了之后 强制刷新setNeedDisplay 之后可以通过frame拿到强制刷新之后的属性

    回复
    0
  • 取消回复