autolayout的各种坑

[_xibView mas_updateConstraints:^(MASConstraintMaker *make) {

make.top.offset(300);

make.width.offset(100);

make.height.offset(100);

}];

1. autolayout做动画需要调用系统方法

[self.view layoutIfNeeded];

例如:

[UIView animateWithDuration:0.5 animations:^{
//            CGRect rect = _xibView.frame;
//            rect.origin.y = 300;
//            _xibView.frame = rect;
//
            [_xibView mas_updateConstraints:^(MASConstraintMaker *make) {
                make.top.offset(300);
                make.width.offset(100);
                make.height.offset(100);
            }];
            [self.view layoutIfNeeded];
        } completion:^(BOOL finished) {

        }];

2. 没办法知道这个视图的真实尺寸

3. 难以修改或者这个视图的尺寸和位置约束

时间: 2024-10-24 17:50:23

autolayout的各种坑的相关文章

前两日遇到的一个关于AutoLayout的一个坑

对于一个view,先将其add到一个superView上,并设置约束,比如,设置高度约束为100 如果再次操作这个view,将其添加到另一个superView上,再次设置约束时,之前附加到该view上的约束,并不会因为其superView变化而清空,就会出现约束冲突. 如何解决: 再次操作添加约束时,应先将之前的约束清空,对于masonry来说,就是使用remakeConstraint代替makeConstraints即可

Masonry之UIScrollView 自动布局

由于项目开始比较急,又是一个人,再加上apple自动布局比较麻烦,衡量以后就用了frame来布局画面.现在稍微闲了一些,就开始对之前的代码做一些优化.其中有一个小功能是这样的,一个可以横向滑动的scrollView,画面加载的时候从服务器取背景图以及文字说明和跳转链接,同时图片做缓存,下一次重新加载的时候如果加载失败,就加载上一次的内容.那么这个地方就涉及了画面,图片缓存两个部分.本文先从画面开始说起. 第一次使用自动布局来写scrollView,就遇到了坑.后来在一个博客中找到了答案.链接如下

AutoLayout的坑

本文投稿文章,作者:MangoMade(简书) AutoLayout非常强大也非常易用,可读性也很强,加上各种第三方AutoLayout库,让你布起局来犹如绷掉链子的狗!根本停不下来!以前的 1 label.frame.origin.y + label.frame.size.height + 10 如今只用: 1 2 3 button.snp_makeConstraints{     $0.top.equalTo(label.snp_bottom).offset(10) } 真是好用得不要不要.

AutoLayout的那些事儿

转自:http://www.cocoachina.com/ios/20160530/16522.html 本文投稿文章,作者:MangoMade(简书) AutoLayout非常强大也非常易用,可读性也很强,加上各种第三方AutoLayout库,让你布起局来犹如绷掉链子的狗!根本停不下来!以前的 label.frame.origin.y + label.frame.size.height + 10 如今只用: button.snp_makeConstraints{     $0.top.equa

使用 autolayout 在scrolleView中进行布局

相信有很多人因为iPhone6出来后 ,因为适配而选择开始使用autolayout.现在正在被虐中...    今天要做一个在scrollView上面 可以滚动的效果  平时用代码写 感觉很快  , 被autolyout 坑死了 .  弄了好久才知道为什么 scrollView 不能滚动. 话不多说  首先创建一个新的工程 .然后往view 上面加载一个scrollView 并加好约束 . 这里是让他铺满整个屏幕.没什么技巧 . 然后 ,我就想是不是设置下 contentSize  就行了  .

ios 加载xib遇到的坑

storyboard,个人觉得是个好玩意儿,但是什么都做到其中总觉得杂乱.个人偏好把复杂的局部控件(比如定制的collectionviewcell)在xib文件中拉好. 在开发过程中遇到不少坑,记忆犹新的是:xib中的部件(比如button)设置圆角的效果不对:加载的xib不能resize大小. 第一个问题: 圆角的设置代码: view.layer.cornerRadius = view.frame.size.height / 2; 使用了autolayout则需要注意调用的地方:(因为auto

Autolayout 约束类方法的理解(学习笔记二)

随apple大屏手机的问世,屏幕适配问题被堆到风口浪尖,对于代码画UI的同学无疑是个噩梦.在上班闲暇之余,学习了autolayout:autolayout从iOS6开始使用,因为各种坑,只有一些advanced coder们所用,但现在autolayout今非昔比了.学习的必要性也越发强烈. autolayout也可以用代码实现,apple可爱的工程师开发了一个可视化语言VFL(Visual Format Language),这里不解释VFL的语法,但是要解释一个约束的类方法,个人觉得这对理解a

总结iOS 8和Xcode 6的各种坑

总结iOS 8和Xcode 6的各种坑 项目路径坑 模拟器的路径从之前的 ~/Library/Application Support/iPhone Simulator 移动到了 ~/Library/Developer/CoreSimulator/Devices/ 这相当的坑爹,之前运行用哪个模拟器直接选择这个模拟器文件夹进去就能找到项目 现在可好,Devices目录下没有标明模拟器的版本,图片上选中的对应的可能是iPhone 5s 7.1的 然后图片上的文件夹对应的应该是 iPhone 4s 7

(转)总结iOS 8和Xcode 6的各种坑

项目路径坑 模拟器的路径从之前的 ~/Library/Application Support/iPhone Simulator 移动到了 ~/Library/Developer/CoreSimulator/Devices/ 这相当的坑爹,之前运行用哪个模拟器直接选择这个模拟器文件夹进去就能找到项目 现在可好,Devices目录下没有标明模拟器的版本,图片上选中的对应的可能是iPhone 5s 7.1的 然后图片上的文件夹对应的应该是 iPhone 4s 7.1 iPhone 4s 8.0 iPh