UIStackView入门示例解析

来源:互联网 发布:广州淘宝大学学费多少 编辑:程序博客网 时间:2024/05/17 02:36

作者:Love@YR
链接:http://blog.csdn.net/jingqiu880905/article/details/50970391
请尊重原创,谢谢!

网上找到一份代码:https://github.com/tutsplus/iOS-StackViewStarterProject
很简单,可以下载下来看看。

下面我们来梳理一下stackview

  1. 当stackView axis为vertical ,其Alignment 控制subview的宽度。
    选择Leading、Trailling、Center时其里面的控件都是sizeToFit的,即控件的宽度和内容本身宽度相等。唯独Alignment为Fill时是等于父控件的宽度。(拉伸状态)
    Distribution控制subview的高度。
    选择Fill时,上下元素依次设置其sizeToFit的高度排列,中间间隔为Spacing,最后一个元素的底部要离其父控件底部为0。
    选择Fill equally时,每个元素的高度为(superView.frame.height-(subviews.count-1)*spacing)/subviews.count
    选择Equal Spacing时,上下元素依次按照其sizeToFit的高度排列,然后他们之间再等间隔排列,此时设置Spacing无效,因为此时的间隔是算出来的。

  2. 当stackView axis为horizontal时 ,其Alignment控制其子控件的高度和位置。
    选择Top, Center, Bottom时子控件的高度都是sizeToFit的,他们的center.y分别为其height/2,和垂直居中于其superView, 和bottom与父控件button相距0。选择Fill的话子控件的高度等于父控件的。
    Distribution控制subview的宽度。
    选择Fill Equally时宽度等于(superView.frame.width-(subviews.count-1)*spacing)/subviews.count
    选择Equal Spacing是宽度为sizeToFit的,此时设置Spacing无效,因为此时的间隔是算出来的。

在写代码时需要注意[self.horizontalStackView addArrangedSubview:starImgVw];
而不是addSubview,后者不会出现加了约束后的效果!!

0 0
原创粉丝点击