IOS使用AutoLayout让UIScrollView自动计算ContentSize

IOS的界面开发中,布局方式存在分裂的两种局面。
早入行的iOS开发者,基本上都是手动计算各种高度。但是从web或者Android转过去的学习iOS的开发者,基本上都很难适应这种手动计算的方式,更加偏向使用autolayout去做布局。
实际上 iPhone6之后,iOS设备出现多种分辨率之后,苹果也推荐大家使用autolayout去写界面。

看了几本iOS的书籍,基本的都是直接设置一个固定的contentSize给UIScrollView就完事了,也不考虑高度不固定的情况。

网上搜索了一堆,也没看到一个正常一点的例子。

切入主题

思路:创建一个UIScrollView,然后直接把子View的下边的约束依赖到UIScollView的底部,
然后就ok了

上代码

// 1
var scrollView : UIScrollView = {
        let v = UIScrollView(frame: .zero)
        v.backgroundColor = UIColor.systemGray
        return v;
    }();
	
	// 2.
	self.view.addSubview(scrollView)
	
	// 3.设置UIScrollView的默认宽高约束
	scrollView.snp.makeConstraints { make in
            make.leading.equalTo(view.safeAreaLayoutGuide.snp.leading)
            make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
            make.trailing.equalTo(view.safeAreaLayoutGuide.snp.trailing)
            make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
        }
	// 4. 创建子View
	 let v = UIView();
        v.backgroundColor = UIColor.systemCyan
        scrollView.addSubview(v)
        v.snp.makeConstraints { make in
            make.width.equalTo(200)
            make.height.equalTo(3000)
            make.leading.equalToSuperview()
            make.top.equalToSuperview()
            make.bottom.equalTo(scrollView.snp.bottom) // 重点就是这一句。让子View的bottom依赖到UIScrollView的bottom。就可以直接滚动了
        }
	

参考

https://stackoverflow.com/questions/48216808/programmatic-uiscrollview-with-autolayout

image

原文链接:https://www.cnblogs.com/boxrice/p/17281641.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IOS使用AutoLayout让UIScrollView自动计算ContentSize - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • csm移动端h5用什么样的视觉方案?

    项目需要求在移动端H5需要展示一些数据统计的图表,虽然第一时间想到的是echarts,常用还有Highcharts,D3等,antv家族的图表UI好看一些,再加上F2是移动端可视化方案于是就选择F2,打开官网果然眼前一亮F2提供的正能满足需求,F2官网地址:https://antv.alipay.com/zh-cn/f2/3.x/demo/index.htm…

    IOS 2023年4月18日
    00
  • 京喜APP – 图片库优化

    作者:京东零售 何骁 介绍 京喜APP早期开发主要是快速原生化迭代替代原有H5,提高用户体验,在这期间也积累了不少性能问题。之后我们开始进行一些性能优化相关的工作,本文主要是介绍京喜图片库相关优化策略以及关于图片相关的一些关联知识。 图片性能问题 作为电商APP,图片在各个业务场景被大量使用。我们需要做到尽可能降低网络消耗/内存消耗/硬盘消耗,同时不降低图片…

    IOS 2023年5月11日
    00
  • 无需支付688苹果开发者账号,xcode13打包导出ipa,提供他人进行内测

    众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,经过一番百度,APP Uploader这块软件,真是及时啊,免688,只需要注册苹果个人开发者账号,不需要688认证,就可以打包自己开发的…

    IOS 2023年4月18日
    00
  • AFNetworking整体框架简单整理

    一、AFNetworking整体框架是怎样的 1、UIKit集成模块 UIKit 2、请求序列化 Serialization 3、响应序列化 Serialization 4、会话 NSURLSession AFURLSessionManager最核心 子类:AFHTTPSessionManager 6、网络安全模块 Security 7、网络监听 Reach…

    IOS 2023年4月18日
    00
  • xcode打包导出ipa

      众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账号,不需要688认证,就可以打包自己开发的ios应用,自己真机测试,下面是详细教程:…

    IOS 2023年4月18日
    00
  • iOS 组件化实施过程

    目录 一、组件化的优缺点 二、组件化的拆分 三、组件与组件之间如何进行通讯(路由) 四、从Cocopods拉取代码的过程 五、创建本地私有库 一、组件化的优缺点 二、组件化的拆分 三、组件与组件之间如何进行通讯(路由) 四、从Cocopods拉取代码的过程 远程索引库里很多的.spec文件,该文件记录了很多内容,如用户名,框架名称,描述,框架的地址 Podf…

    IOS 2023年4月18日
    00
  • 新人必看| 移动端“动态化”是什么意思?

    在移动开发领域,为了让APP保持最新的版本,同时让业务开发变得更加快捷,动态化技术极其重要。今天就来聊聊移动端动态和开发的由来和各流派的优缺点。 移动端动态化的由来 “动态化”并不是最近几年才产生的名词,而是从从互联网诞生的初期,这个词就已经出现了。大家所认知的早期互联网,其实就是各种各类的“动态网站”,内容数据和页面外观都不是固定的,都是随着服务器端的更新…

    IOS 2023年4月17日
    00
  • iOS-Coretext 图文混排占位符上下偏移处理

    这里说的占位符,实际就是排版时需要展示的图片,图片基于占位符填充,那么处理图片时,怎么解决占位符(图片)的上下偏移在设置占位符属性时,我通过以下方法来实现它: + (NSAttributedString *)wxImageAttributeCoreTextFromPaperQuestion:(WXTKCoretextQSourceImg *)image{ C…

    IOS 2023年4月17日
    00
合作推广
合作推广
分享本页
返回顶部