最近上手使用Swift来实现一些简单的功能,顺便当做练习了!
在使用UICollectionView实现列表功能时,发现了诡异的现象:
当我像往常那样同OC一样实现UICollectionView相关的布局方法后,布局乱做一团,代码如下:
extension HomeViewController: UICollectionViewDelegateFlowLayout{
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
UIEdgeInsets.zero
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let section = indexPath.section
if section == 0 {
return CGSize(width: view.bounds.width, height: 100)
}else if section == 1{
return CGSize(width: (view.bounds.width - 1) / 2.0, height: 55)
}else if section == 2{
let w = view.bounds.width / 4.0
let h: CGFloat = 80.0
return CGSize(width: w, height: h)
}else{
return CGSize(width: view.bounds.width, height: 100)
}
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
// section == 2 ? CGFloat.leastNonzeroMagnitude : CGFloat.leastNormalMagnitude
CGFloat.leastNormalMagnitude
}
}
效果图:
顿时蒙圈了,怎么会这样的,同样的代码,Swift这是要逆天啊😂,冷静下来,进入分析阶段,心想:既然代码差不多,是不是XIB上有什么差异,经仔细对比后发现了端倪,如下图
真晕,果断改回来None,效果图顿时在掌控之中:
Binggo! 收工
看来Swift这条路不好走啊,加油ヾ(◍°∇°◍)ノ゙