使用Masonryframe跟bounds为0的情况

原创 2017年01月03日 17:55:51

AutoLayout关于更新的几个方法的区别

setNeedsLayout:告知页面需要更新,但是不会立刻开始更新。执行后会立刻调用layoutSubviews。

layoutIfNeeded:告知页面布局立刻更新。所以一般都会和setNeedsLayout一起使用。如果希望立刻生成新的frame需要调用此方法,利用这点一般布局动画可以在更新布局后直接使用这个方法让动画生效。

layoutSubviews:系统重写布局

setNeedsUpdateConstraints:告知需要更新约束,但是不会立刻开始

updateConstraintsIfNeeded:告知立刻更新约束

updateConstraints:系统更新约束

Masonry使用注意事项

用mas_makeConstraints的那个view需要在addSubview之后才能用这个方法

mas_equalTo适用数值元素,equalTo适合多属性的比如make.left.and.right.equalTo(self.view)

方法and和with只是为了可读性,返回自身,比如make.left.and.right.equalTo(self.view)和make.left.right.equalTo(self.view)是一样的。

因为iOS中原点在左上角所以注意使用offset时注意right和bottom用负数。


例如,获取_detail的frame

_detail = [UILabel new];

    _detail.numberOfLines = 0;

    _detail.font = [UIFont systemFontOfSize:16.f];

    [_bgScro addSubview:_detail];

    [_detail mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.equalTo(self.view.mas_left).with.offset([Scale myWidth:10.f]);

        make.right.equalTo(self.view.mas_right).with.offset( - [Scale myWidth:10.f]);

        make.top.equalTo(_time.mas_bottom).with.offset([Scale myWidth:10.f]);

    }];


-(void)webFrame{

    [self.view layoutIfNeeded];

    CGFloat frameY = _detail.frame.origin.y + _detail.bounds.size.height;

    _webView.frame = CGRectMake(0, frameY, kScreenW, kScreenH - frameY);

}


相关文章推荐

iOS Masonry布局获取Frame

方法1 [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(...

【iOS学习笔记 15-12-3】关于masonry布局中的frame和bounds

iPhone每年更新一款新的产品,屏幕也开始出现碎片化问题。所以在iPhone开发上面也碰到了和安卓一样不可避免的问题,就是不同屏幕的适配。 这些在面试中,也有面试官问到过,之前一直在忙着找工作的事,...

Masonry2个小技巧

本文介绍使用Masonry时,怎么得到真实frame,以及如何实现动画
  • kyfxbl
  • kyfxbl
  • 2015年08月19日 20:59
  • 2071

使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame

当我们使用AutoLayout做适配时,可能会有这样的需求,就是在想在适配完成前就取得子控件的真实frame,来做一些操作。比如我们想把一个正方形的UIImageView剪成一个圆形,这时候就需要这么...

Cocoapods-Unable to satisfy the following requirements

记录一个问题,之前遇到过,又忘了:Cocoapods 更新出现如下错误Resolving dependencies of `Podfile` [!] Unable to satisfy the fol...
  • AD_118
  • AD_118
  • 2016年08月29日 17:58
  • 1185

IOS摇一摇功能实现

#pragma mark - 生命周期函数 - (void)viewDidLoad { [super viewDidLoad]; _shouldShowClearHistor...

Android中assets目录和raw目录的区别和使用情况0

也可以参考:http://blog.csdn.NET/luoshengyang/article/details/8738877 原文作者: futurexiong 原文地址: ht...

用于IMEI无效的情况,生成MP0B_001

  • 2013年12月06日 23:21
  • 60KB
  • 下载

深入探究frame和bounds的区别以及setbounds使用

在iOS开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,很难理解。 一、首先,看一下公认的资料 先看到下面的代码你肯定就明...

iOS之旅--使用控件的属性frame、center、bounds

属性使用总结frame: 是 CGRect 格式,struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Masonryframe跟bounds为0的情况
举报原因:
原因补充:

(最多只允许输入30个字)