美文网首页
自动布局(Autolayout)

自动布局(Autolayout)

作者: 辛小二 | 来源:发表于2016-10-12 16:59 被阅读52次

定义

什么叫做Autolayout?

其实就像开头的标题是一样的自动+布局 那么这是说帮你做的的呢?其实是电脑再帮你做这样的工作,要不也不能叫自动布局!

正题

今天看了叶孤城大神的文章,有所心得,结合自己的心得得出以下结论。为什么在自动布局(Autolayoyt)里面设置一个label
的大小只需要设置两个值就可以,哪两个值呢?就是位置,这里可以不设置大小就可以显示这个label,但是为什么view不行呢,那么重点来了,原因就是view里面没有内容,你会发现关于UIButton 以及 UILabel 这一类的东西都是可以只设置两个属性的,那么问题来了,怎样设置留白的问题呢?代码如下:

  • (CGSize)intrinsicContentSize
    {
    CGSize originalSize = [super
    intrinsicContentSize];
    CGSize size = CGSizeMake(originalSize.width+20, originalSize.height+20);
    return
    size;
    }

注释:上述代码的意思就是,我们先获取系统通过Label的内容计算出来的宽和高,再分别给他增大再返回新的Size就可以了。再运行一下,你就会发现,Label的大小就会比内容大了。(别忘了,把对齐方式设置为居中)

再回到之前的那个问题,UIView如果只设置坐标,不设置大小会报错的问题。
如果是用代码写约束,如果你只想设置坐标不想设置大小,那么你需要像上面的代码一样,在- (CGSize)intrinsicContentSize为你的UIView指定一个默认大小。
如果是在XIB里,那么你需要在下图这个Instrinsic Size的属性里设置为Placeholder。这样,Xcode就不会报错了。如图所示的两种情况:

截图.png 截图2.png

>当属性得到更改之后,你会发现你的UIView不会爆红了,

下面实现的是label在上面UIView中实现自适应高度的问题

同样的在上面的xib当中拖入一个label,那么label的frame是这样设置的(label距离上下左右分别是0)这样就能够保证label的大小改变会使外层view的大小也随之变化,最后你需要设置label的lineofnumber属性为0,这个时候你会有如图所示的展示--


截图3.png

以上学习感谢叶孤城大神,fighting!!!我是辛小二,90后奔跑男孩!

本人个人微信公众号地址(喜欢记得关注😯)


辛小二个人微信公众号地址

相关文章

  • iOS开发之 自动布局

    iOS开发之自动布局AutoLayout 目录: 1 iOS自动布局简介2 iOS自动布局AutoLayout(代...

  • AutoLayout

    AutoLayout autolayout的概念 Autolayout是一种“自动布局”技术,专门用来布局UI界面...

  • UI基础4

    自动布局 autoresizing:autolayout:size classes + autolayout:si...

  • # iOS - AutoLayout -1

    iOS - AutoLayout -1 1、AutoLayout 自动布局(AutoLayout)是iOS6引入的...

  • AutoLayout 自动布局

    Autolayout 简介 Autolayout 是一种“自动布局”技术,专门用来布局 UI 界面的 Autola...

  • Autolayout自动布局实现的方法一:storyboard的

    Autolayout简介 Autolayout是一种“自动布局”技术,专门用来布局UI界面的, Autolayou...

  • 什么是Autolayout

    什么是Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的 Autolayou...

  • Autolayout

    什么是Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的 Autolayou...

  • 关于Autolayout和Masonry自动布局的几个坑

    关于Autolayout和Masonry自动布局的几个坑 自动布局 02 Mar 2016 0 Comments ...

  • Autolayout基础

    1、什么是Autolayout? 答: Autolayout是一种“自动布局”技术,专门用来布局UI界面的。Aut...

网友评论

      本文标题:自动布局(Autolayout)

      本文链接:https://www.haomeiwen.com/subject/papiyttx.html