我有一个简单的UICollectionView,在navigationController中有一个自定义单元格。出于某种原因,当我推动viewController时,collectionView单元格在转换期间更改其布局。
在viewController转换期间,uicollectionview的一些常见行为是什么?因为,例如:标签没有这样的问题
When back button was clicked 来自collectionView的绿色
添加新视图控制器
navigationController?.pushViewController(controller, animated: true)
使用EasyPeasy pod
设置AutolayoutcollectionView.easy.layout([
Top(),
Right(),
Width(view.frame.width),
Bottom(10).to(button),
])
button.easy.layout([
Center(),
Height(60),
Width(300),
])
答案 0 :(得分:0)
我想我已经找到了你的问题,它就在你AppDelegate中。向导航控制器设置为false的属性isTranslucent
似乎是这个罕见的问题。半透明导航栏将位于viewcontroller视图的顶部,就像它上面一样。一个非半透明的导航栏会向下推动你的视图控制器的视图,换句话说,它会重新调整它以使其适合它。但是为什么集合视图像它一样动画,我实际上无法给出明确的答案。也许其他人可以做到这一点?..
要使导航栏保持半透明,您可以在viewcontroller中将另一个属性设置为'extendedLayoutIncluedsOpaqueBars'为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
希望这能解决您的问题! :)