控件利用Masonry添加约束之后 不能立刻获取到该控件的尺寸

我们用代码创建了一个按钮  然后利用Masonry来添加宽高和坐标  接下来我们马上需要用到该按钮的尺寸,会发现取到的是{0,0}}  代码如下:

   //头像按钮
    UIButton *portraitBtn = [UIButton new];

    [self.view addSubview:portraitBtn];

    [portraitBtn mas_makeConstraints:^(MASConstraintMaker *make) {

        make.width.height.offset(80);

        make.left.offset(20);

        make.top.offset(100);

    }];

    NSLog(@"%@",portraitBtn);

解决方法:

[portraitBtn layoutIfNeeded];

没错,就是 layoutIfNeeded  这样就能马上获取到正确的尺寸

@end

时间: 2024-08-09 23:04:32

控件利用Masonry添加约束之后 不能立刻获取到该控件的尺寸的相关文章

Masonry 添加约束要注意顺序

对一个视图添加约束,其依赖的约束必须先已经存在,不能依赖该代码后的约束,否则造成不可预料的结果,如下代码能达到预期效果 - (void)makeConstraints { __weak typeof(self) weakSelf = self; [self.photoMoreButton mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(weakSelf.photoButton).with.offset(-6

纯代码添加约束,autolayout 适配

IOS AutoLayout 代码约束—VFL 2014-12-22 22:19:43http://my.oschina.net/carson6931-Carson6931-点击数:2148 IOS 提供了两种添加约束的方法 第一种: +(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2

利用代码添加autolayout约束

1.概述 通常我们通过storyboard能够完成的,代码也能够完成,所以这里介绍下代码实现约束的添加,通常我们不这么干(在不使用第三方框架的情况下,使用系统自带的类添加约束特别繁琐),所以这里仅仅简单介绍下代码实现原理 2.实现效果 实现效果  纯OC代码  在storyboard中的一条约束在代码中的体现就是一个约束对象,所以添加在storyboard上添加一条约束,相当于创建了一个约束对象并将该约束对象添加到对应的视图上 第一步:创建子控件视图 第二步:禁用子控件的autoresizing

ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能

原文:ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能 在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍新增文档目录控件(TOC),通过拖拽操作便可添加报表目录. 目录控件可以帮助用户快速的导航到位于报表中希望查看的数据.可以使用目录控件内嵌报表主体的内容列表用于打印和导出.不像文档结构图只能在报表浏览器中查看不能导出或者打印. 本示例被分解为下面的步骤 Visual St

【原】iOS学习之Masonry第三方约束

1.Masonry概述 目前最流行的Autolayout第三方框架 用优雅的代码方式编写Autolayout 省去了苹果官方恶心的Autolayout代码 大大提高了开发效率 框架地址:https://github.com/SnapKit/Masonry 2.常用方法 这个方法只会添加新的约束 [blueView mas_makeConstraints:^(MASConstraintMaker *make) { }]; 这个方法会将以前的所有约束删掉,添加新的约束 [blueView mas_r

Storyboard中使用UIscrollView添加约束的开发总结

第一次在项目中用storyboard做界面,一般的界面直接添加约束非常爽快 然后有个界面有scrollview,添加了约束还总是出错 刚开始使用了 wCompact,hRegular,滑动出现问题,有些界面滑动不了或者可以左右滑动 已经在viewDidLoad里面添加了scrollView的contentsize 约束什么的都没有问题,百思不得其解 后来上网查了一下资料 还是scrollView的contentsize的问题 scrollView的contentsize只能在viewDidApp

Storyboard学习手记(二)——添加约束

控件布局 xcode的自动布局让iOS开发更加便利,但是也存在许多的弊端,跟纯代码比起来省去了许多计算坐标以及繁复的语句,但是有些人认为自动布局不如代码灵活,总是能听到有人说这个用代码做可以实现,用自动布局实现不了,或许是可以实现的,只是对这个了解不深,当然我也只能在这里写些基础的东西. 现在xcode默认使用自动布局,因此直接把控件拖进controller,再将其约束起来就可以了,这里要说的就是如何按照不同的需求去约束. 这里不能像web那样一个个div块整整齐齐的分出来,而是要用尽量少的控件

StoryBoard下ScrollView如何添加约束

在做项目的事后有一个注册页面,为了适配屏幕采用了StoryBoard,添加约束以后运行后发现一个问题.  在4.0 甚至更大的屏幕下是没有问题的,如下图(4.0屏幕) 但是放到更小的3.5英寸就会出现问题,发现下面的按钮不见了,主要原因是输入框太多,导致更个屏幕放不下更多.如图(3.5)英寸 想了下就决定用ScrolleView, ContentSize可以设置为560. 这样在其他屏幕上没有太多的影响,在3.5的屏幕下也可以滑动了.但是在StoryBord拖过ScrollView,添加约束的时

iOS - XIB之AutoLayout添加约束

XIB--AutoLayout添加约束 仿QQ登录界面: 说明:以下各图背景红色只是方便看清楚: 1.创建工程:创建xib文件 2.打开xib文件: (1).创建头像: 拖控件:uiimageview-->放到任意位置-->点击Align键,Pin键:如下图: 此时:就可以对控件任意约束了: 说明:由于时间原因,没介绍的以后慢慢自己琢磨: Align键:Horizontally: 垂直居中对齐: Vertically:水平居中对其: Pin键: Add New Constraints:表示这个