@IBAction func searchOn() {
self.searchController.searchResultsUpdater = self
self.searchController.hidesNavigationBarDuringPresentation = true
self.searchController.dimsBackgroundDuringPresentation = false
self.definesPresentationContext = true
self.present(searchController, animated: true, completion: nil)
}
我想在这里做的是在显示搜索栏时隐藏导航栏并将单元格放在正确的位置,因为现在它们正在搜索栏下。
我能想到的其中一个解决方案就是在动画导航栏隐藏时向下移动相同的距离。但问题是我不知道切换导航和搜索栏之间动画的持续时间。
任何人都可以帮忙解决这个问题吗?
或者至少帮助我获得在导航和搜索栏之间切换的动画持续时间。
答案 0 :(得分:0)
在viewDidLoad()方法中编写此代码。
let flow: UICollectionViewFlowLayout = CollectionView.collectionViewLayout as! UICollectionViewFlowLayout
flow.sectionInset = UIEdgeInsetsMake(70, 0, 0, 0)
答案 1 :(得分:0)
另一种方法是尝试将contentOffset
设置为所需位置。并将y位置更改为上下移动,您也可以给出负值
例如,
//without animation
collectionview.contentOffset = CGPoint(x: 0, y: 100);
//with animation
collectionview.setContentOffset(CGPoint(x: 0, y: 100), animated: true)
并且你也可以像Chirag Patel提到的那样利用sectionInset