美文网首页
最近开发遇到的AutoResizing坑

最近开发遇到的AutoResizing坑

作者: 0200a9609930 | 来源:发表于2019-08-12 16:52 被阅读0次

由于博客地址无效, 故把之前的博文转来简书
转自2017-02-26

image

在模仿斗鱼开发首页的时候,我的页面层次是这样的:
1.最底层的是个UIViewController

2.然后自己封装了一个TitleView和ContentView加在self.view上

3.ContentView里面是个UICollectionView,随着TitleView的点击,UICollectionView要滑动到所对应的模块去,当然UICollectionView也可以自己滑动

4.然后创建对应的控制器UIViewController,在UICollectionView的DataSource里加入到cell中

let vc = subVcs[indexPath.item]
vc.view.frame = cell.contentView.bounds
cell.contentView.addSubview(vc.view)

首先,说下我遇到的第一个坑

1.在把UIViewController的view加入到cell.contentView中的时候,我忘记设置frame了

vc.view.frame = cell.contentView.bounds

这导致我在对应的模块的UIController中,添加的View大小一直有问题

image

如图所示,就是我的推荐的Controller,底部一直不能显示完整,推荐这个页面其实是个CollectionView,我在添加CollectionView的时候,frame = self.view.bounds

image

通过打印得到self.view.frame = { {0, 0}, {320, 568} },其实ContentView的大小没有这么大,这个时候再去看添加controller.view的时候发现没给设置大小.
把frame添加了运行还是出现问题,这个时候要设置当前UICollectionView的大小随着父视图的大小变化而变化.

collectionView.autoresizingMask = [.flexibleHeight, .flexibleWidth]

第二个坑又来了

当我发现底部能完全显示后,我的两个headerView消失了

image

头部是两个UIView,分别加在CollectionView上,然后设置的contentInset.

image

调试的第一步,先看层次结构图,如下

image image image image

发现两个view都变成了一条线,高度被压缩了.这个时候想起设置了这两个view的父视图,也就是我之前设置的CollectionView的大小会被拉伸或压缩.这样,就导致加在CollectionView上的视图也会跟随着变化.

image image image
通过代码或者在xib里都可以设置,让view保持原来的大小!

总结

问题主要出在对AutoResizing和AutoLayout不了解,推荐一个简单的博客,介绍了两者.
子视图要不要跟随父视图的变化而变化,这个就要看具体情况.记得要设置好AutoResizing.
http://www.jianshu.com/p/3c0698c22d85

模仿斗鱼的项目地址:
https://github.com/yangyu2010

相关文章

  • 最近开发遇到的AutoResizing坑

    由于博客地址无效, 故把之前的博文转来简书转自2017-02-26 在模仿斗鱼开发首页的时候,我的页面层次是这样的...

  • iOS开发中遇到过的坑

    iOS开发中遇到过的坑 iOS开发中遇到过的坑

  • 最近遇到的坑

    老实说,这15天的经历好像过了很长时间,我真的大脑每天都在不断的运转,特别的累。30岁的整个生活就像过电影似的,一...

  • 最近遇到的坑

    1:用xib创建tableview的header,footView的时候,不能准确计算出xib的高度。解决:自己计...

  • 最近reactNative在开发android中遇到的坑

    首先说一下我的ReactNative的版本是0.43.4,Android6.0(华为荣耀6Plus),以下遇到的坑...

  • 开发遇到的坑

    1、使用NSUserDefaults存储数组(自定义元素)崩溃,NSUserDefaults支持的数据类型有NSS...

  • Android TV 开发汇总

    前言 最近在做 Android 机顶盒相关应用的开发,在开发过程中遇到大大小小许多坑(仍然有无数坑要去踩),在此跟...

  • 记一次坑

    初次遇到的坑 在最近的开发中,又遇到了之前的坑,再次体会到了需要使用immutable的重要性。js中数组和对象的...

  • Framework开发看我就够了第一回:创建Framework

    1. 最近在研究framework开发,因为之前主要做界面开发,没搞过sdk开发,所以遇到了很多坑,所以想写几篇文...

  • cocoapods安装

    最近重新搭建开发环境又遇到了cocoapods安装的坑。做个问题记录。 问题一: Could not find '...

网友评论

      本文标题:最近开发遇到的AutoResizing坑

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