推广

UIStackView 线性文档流布局

iseeyu2年前 (2024-02-22)推广129

WechatIMG393.png

WechatIMG394.png

会员中心.gif

以上三个页面全部使用UIStackView 作为容器搭建完成

首先看一下 UIStackView 实现线性布局结构图

UIStackview线性布局框架.jpg

具体步骤

创建相关视图

    override func viewDidLoad() {
        super.viewDidLoad()
        let scrollView = UIScrollView()
        scrollView.backgroundColor = UIColor.red
        let stackView = UIStackView()
        stackView.axis = .vertical // 纵向布局
        stackView.distribution = .equalSpacing // 每个item之间间距相同
        stackView.spacing = 20 // 相邻item之间间距
        stackView.alignment = .center // 居中对齐,不对item进行横向拉伸
        view.addSubview(scrollView)
        scrollView.addSubview(stackView)
        
        for i in 0..<10 {
            let itemView = UIButton()// 为了演示效果这里采用 uibutton,点击消失对 UIStackView 布局的影响
            itemView.setTitle("View\(i)", for: .normal)
            itemView.addTarget(self, action: #selector(handle), for: .touchUpInside)
            itemView.backgroundColor = .green
            stackView.addArrangedSubview(itemView)
        }
    }
    @objc func handle(btn:UIButton) {
        UIView.animate(withDuration: 0.25) {
            btn.isHidden = true
        }
    }

UIScorllview 约束设置

        scrollView.snp.makeConstraints { (make) in
            make.edges.equalTo(self.view)
        }

UIStackView 约束设置,关键步骤,设置 stackView 定宽或者像下面这样,依赖于 scrollView 的父视图宽度,高度依赖栈内子视图将其撑开,并撑开 scrollView 的 contentSize

        stackView.snp.makeConstraints { (make) in
            make.left.right.equalTo(self.view)
            make.top.bottom.equalTo(scrollView)
        }

UIStackView 栈内子视图约束设置

            itemView.snp.makeConstraints { (make) in
                make.height.equalTo(200)
                make.width.equalTo(self.view.frame.width - 40)
            }

预览效果

线性布局效果.gif

总结

UIStackView 是 苹果官方在iOS 9.0 推出的非常先进的容器视图,结合自动布局能够快速的帮助开发者完成各种布局效果。我在开发《海马体照相馆》app 的过程中大量的使用了 UIStackView,有时间的话分享一篇 UIStackView 的其他方面的应用。

Demo 地址(欢迎大家留言,相互学习):https://github.com/muxueChen/learnStackView

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56549.html

相关文章

越穷越别着急赚钱,听完以下三条翻身商业思维,你也能成功

越穷越别着急赚钱,听完以下三条翻身商业思维,你也能成功

大家好,我是【右友讲】的石头哥,一个深耕七年互联网创业的山东人,跟着我带你们每天看最新资讯。越穷越不要着急去挣钱。我告诉你,而是做好以下三件事情,到时候你真的是很自然的一个东西,水到渠成。否则你这一辈子都很难翻身。我告诉你第一点就是跳出低质量的圈,很多聪明人他都不去参加酒局...

线上、线下平台都如何引流?分享几个技巧!

线上、线下平台都如何引流?分享几个技巧!

  互联网产品竞争越来越激烈,用户获取也越来越难。本文作者从线上、线下两方面,各分析了几种引流方法的利弊,快来学习一下。 互联网时代媒体碎片化、用户圈子化、生活方式多元化,用户的选择性更多,对产品的要求也更个性化,导致获客成本越来越高、越来越难。 用户的“挑剔”成为常态,企...

快手运营技巧及实操

快手运营技巧及实操

快手作为一个非常火爆的段视频媒体,在其运营及新媒体人的爆粉方面,有着与其它短 视频自媒体的不同与相近。今天分享是目前已经经过检验的方法,帮助很多人在短时间 获得大量的精准粉丝。首先你要了解快手这款软件,是一款纯自媒体软件,可以在网上发布 你的视频和照片,类似于微博,不管你...

如何避免高端网站建设中的设计注意事项。

如何避免高端网站建设中的设计注意事项。

现在,网站不仅仅是一个简单的网站,如何保持网站的基本要素不变,网站的设计更高端已经成为许多企业的共同特征。然而,最重要的是避免网站设计中的一些注意细节。只有这样网站才能算是高端网站。那么,网站建设中都包含那些网站设计中的注意事情。 如何避免高端网站建设中的设计注意事项 网站建设都包括一下内容...

营销型网站迁移空间时会不会对网站有影响。

营销型网站迁移空间时会不会对网站有影响。

当一个网站在做了一段时间之后发现网站的服务器太小,每天的流量不够就需要换一个大一点的服务器,那么在迁移空间时对网站会有什么影响呢? 1、迁移时做到网站数据和结构完整,所有收录的页面链接地址均保证能正常访问。 2、做好服务器空间设置,尽量保证与旧空间设置一致,比如默认首页文件,比如404...

企业如何做抖音运营

企业如何做抖音运营

大部分企业都是希望利用抖音来卖货的,但不是所有的产品都适合在抖音直接推销,如果你的产品没有清晰的视觉差异化,在抖音上卖货就会很难,消费者看不到你所卖的产品是否有独特的差异性,消费者自然无法快速产生购买欲望。同时很多人在不了解抖音的运营规则、技巧,不懂新媒体的运营规律何情况下,一上来就进行拍摄...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片