Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift:uicollectionview在转换期间更改单元格的contentoffset_Ios_Swift - Fatal编程技术网

Ios swift:uicollectionview在转换期间更改单元格的contentoffset

Ios swift:uicollectionview在转换期间更改单元格的contentoffset,ios,swift,Ios,Swift,我有一个简单的UICollectionView,在navigationController中有一个自定义单元格。由于某些原因,当我按下viewController时,collectionView单元在转换期间会更改其布局 这是viewController转换期间uicollectionview的一些常见行为吗?因为,例如:标签没有这样的问题 collectionView中的绿色 添加新的视图控制器 navigationController?.pushViewController(control

我有一个简单的UICollectionView,在navigationController中有一个自定义单元格。由于某些原因,当我按下viewController时,collectionView单元在转换期间会更改其布局

这是viewController转换期间uicollectionview的一些常见行为吗?因为,例如:标签没有这样的问题

collectionView中的绿色

添加新的视图控制器

navigationController?.pushViewController(controller, animated: true)
使用pod设置自动布局


我想我已经发现了你的问题,它就在你身上。属性
isTranslucent
,对于导航控制器设置为false,似乎可以解决这个罕见的问题。一个半透明的导航条将位于viewcontroller视图的顶部,就像它上面一样。一个非半透明的导航条向下推视图控制器的视图,或者换言之,将其重新zizing,使其适合其下方。。但是为什么collectionview会有这样的动画效果,我实际上无法给出一个明确的答案。也许其他人也能做到

要使导航栏保持半透明,可以在viewcontroller中将另一个属性“ExtendedLayoutCluedSoPaqueBars”设置为true

所以。。像这样做。在AppDelegate中:

window = UIWindow(frame: UIScreen.main.bounds)
window!.makeKeyAndVisible()
let controller = TestingNavigationController()
let navigation = UINavigationController(rootViewController: controller)
window!.rootViewController = navigation

let navigationBarAppereance = UINavigationBar.appearance()
navigationBarAppereance.isTranslucent = false
然后,在视图控制器viewDidLoad方法中添加这一行

extendedLayoutIncludesOpaqueBars = true
希望这能解决您的问题!:)


您有任何代码可以向我们展示吗?很难理解您试图如何处理这些约束,但您没有为collectionview使用任何高度。我想这是通过按钮计算出来的。看起来绿色的collectionview被设置为10px(可能?)。。什么时候在代码中设置约束?那个蓝色的盒子是什么,那个元素的约束条件是什么?感觉您的自动布局存在一些问题。@martinbortrand UICollectionViewCell的背景色为蓝色。我在viewDidLoad中设置了约束。很抱歉给您带来不便。似乎在转换过程中,后单元格变小了,那么您是否设置了单元格的大小?看起来怎么样?@MartinBorstrand返回collectionView(:sizeForItemAt)内部的CGSize(宽度:collectionView.bounds.width,高度:collectionView.bounds.height)。正如我在上面已经添加的,这种行为只在collectionView中发生cells@Dauren请你对我的回答作出反应好吗?
extendedLayoutIncludesOpaqueBars = true