我有一个UICollectionView
,我在其中实现了添加单元格的方法。
private func addNewMessage() {
let tuplForAdd = dataSource.newMessage()
if tuplForAdd.needNewSection {
collectionView.insertSections(dataSource.indexSet)
} else {
collectionView.insertItems(at: [tuplForAdd.indexPath])
}
collectionView.scrollToItem(at: tuplForAdd.indexPath, at: .top, animated: true)
}
如果你不添加任何其他东西,一切都会好的。
但是如果你设置contentInset
,那么滚动就会在我contentInset
中写的值开始工作。
collectionView.contentInset = UIEdgeInsetsMake(64,0,0,0)
collectionView.scrollIndicatorInsets = UIEdgeInsetsMake(64,0,0,0)
我使用xib
文件创建的控制器。
---------------- // -----------------------------
部分解决问题后进行编辑。
在
在
答案 0 :(得分:0)
而不是让64使用以下保证金,
var topMargin = headerHeight + 15
使用automaticAdjustsScrollViewInsets属性,
self.automaticallyAdjustsScrollViewInsets = false
self.collectionView.contentInset = UIEdgeInsets(top: topMargin, left: 0, bottom: 0, right: 0)
如果您只是想在集合视图之外提供保证金,那么您也可以尝试这样做,
如果您想在收藏视图周围提供保证金,请使用
UIEdgeInsetsMake ( CGFloat top,CGFloat left,CGFloat bottom,CGFloat right);
Swift 3
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsetsMake(topMargin, 0, 0, 0)
}
这将解决您的问题..