美文网首页JC专题
UIStackView - 自动布局堆

UIStackView - 自动布局堆

作者: 居然是村长 | 来源:发表于2016-03-31 20:32 被阅读168次

    自动布局是:有了这玩意,我们可以少写一些代码,或者少拉一些约束。
    而且对于3等分啊,什么的布局很是方便。
    虽然它是继承UIView 的,但是并不会实际渲染,再布局时也不用给几个控件拉一个真的contentView了。

    注1:苹果官方文档写的非常清楚,iOS9新的就是不一样,都有大图。
    注2:因为要iOS9以上才能用,所以:有了下面这个库,支持iOS6,注意,啥都不需要干,pod就好了。如果是storyboard 的话,需要把build for 改成iOS9.0以上,但是实际运行在iOS9以下也是ok嗒。
    https://github.com/forkingdog/FDStackView
    注3:可以用代码写一遍,然后在storyboard 上用就横明白了。

    创建

    NSArray *stackSubViews = @[self.view1,self.view2,self.view3];
    self.stackView = [[UIStackView alloc] initWithArrangedSubviews:stackSubViews];
    [self.view addSubview:self.stackView];
    

    属性

    self.stackView.axis = UILayoutConstraintAxisHorizontal;// 布局方向
    
    self.stackView.distribution = UIStackViewDistributionFillEqually;// 填充方式
    /*
    UIStackViewDistributionFill = 0, // 自定义宽高
    UIStackViewDistributionFillEqually, // 布局方向均分:宽或高自己写
    UIStackViewDistributionFillProportionally, // 布局方向排布,超出的截断
    UIStackViewDistributionEqualSpacing, // 间距一致
    UIStackViewDistributionEqualCentering, // center 均分
    // 一般只需要设置内容的 宽 或 高
     */
    
    self.stackView.alignment = UIStackViewAlignmentFill;// 对齐方式
    /*
    UIStackViewAlignmentFill,// 充满,不需要设置宽高,会冲突
    
    UIStackViewAlignmentCenter,// 居中
    UIStackViewAlignmentLeading,
    UIStackViewAlignmentTop = UIStackViewAlignmentLeading,
    UIStackViewAlignmentTrailing,
    UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing,
    
    UIStackViewAlignmentFirstBaseline,
    UIStackViewAlignmentLastBaseline,
    // 对齐方式,需要对应少量设置
    */
    
    self.stackView.spacing = 20.;// 间距。 某几种布局有效,优先级不是很高,
    

    其他

    //    self.stackView.layoutMarginsRelativeArrangement = YES;// ??
    //    self.stackView.baselineRelativeArrangement = YES;// ??
    

    相关文章

      网友评论

        本文标题:UIStackView - 自动布局堆

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