Ios 我们如何在UICollectionView的底部和顶部添加边距?
我是swift新手,这里有一个解决方案,可以制作一个CollectionView,屏幕上有4个单元格,下面的行中有15个边距,这适用于左侧和右侧,但不适用于顶部和按钮Ios 我们如何在UICollectionView的底部和顶部添加边距?,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我是swift新手,这里有一个解决方案,可以制作一个CollectionView,屏幕上有4个单元格,下面的行中有15个边距,这适用于左侧和右侧,但不适用于顶部和按钮 return UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15) ,我们怎么能在顶部和底部有相同的保证金 这里是主视图控制器: import UIKit class MainViewController: UIViewController , UICollectionV
return UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
,我们怎么能在顶部和底部有相同的保证金
这里是主视图控制器:
import UIKit
class MainViewController: UIViewController , UICollectionViewDelegate, UICollectionViewDataSource {
var listArray : [String] = []
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
print("MainViewController")
collectionView.delegate = self
collectionView.dataSource = self
for index in 1 ..< 12 {
listArray.append("Cell \(index)")
}
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return listArray.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "mainCell", for: indexPath) as! MainCollectionViewCell
let cellIndex = indexPath.item
cell.cellLabelText.text = listArray[cellIndex]
cell.backgroundColor = UIColor.blue
return cell
}
}
extension MainViewController : UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let bounds = collectionView.bounds
return CGSize(width: (bounds.width / 2 ) - 30 , height: ( bounds.height / 2 ) - 30 )
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
}
import UIKit
class MainCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellLabelText: UILabel!
}
由于集合视图只有一个节,因此需要正确调整节内不同行/列与同一行/列中不同项目之间的间距,而不是为节设置插图
UICollectionViewDelegateFlowLayout
有以下两种方法可以实现您的目标:collectionView(\uU2:layout:MinimumLineSpacingForSection:)
和collectionView(\uU3:layout:MinimumItemSpacingForSection:)
要复制当前用于截面的间距,需要实现以下方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return CGFloat(15)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return CGFloat(15)
}
由于集合视图只有一个节,因此需要正确调整节内不同行/列与同一行/列中不同项目之间的间距,而不是为节设置插入
UICollectionViewDelegateFlowLayout
有以下两种方法可以实现您的目标:collectionView(\uU2:layout:MinimumLineSpacingForSection:)
和collectionView(\uU3:layout:MinimumItemSpacingForSection:)
要复制当前用于截面的间距,需要实现以下方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return CGFloat(15)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return CGFloat(15)
}
选择您的故事板: 1) 选择
ui集合
view
2) 设置顶部和底部的部分插图
我希望这能有所帮助 选择您的故事板: 1) 选择
ui集合
view
2) 设置顶部和底部的部分插图
我希望这能有所帮助 试试这个
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForItemAt indexPath: IndexPath) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
}
试试这个
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForItemAt indexPath: IndexPath) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
}
您应该像这样设置UICollectionViewFlowLayout的“sectionInset”属性
if let flowLayout = yourCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.sectionInset = UIEdgeInsetsMake(100, 0, 100, 0)
}
这将在集合视图中添加100个点的上下边距。顺便说一句,在UIEdgeInsetsMake方法中,顺序是上、左、下、右。您应该像这样设置UICollectionViewFlowLayout的“sectionInset”属性
if let flowLayout = yourCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.sectionInset = UIEdgeInsetsMake(100, 0, 100, 0)
}
这将在集合视图中添加100个点的上下边距。顺便说一句,在UIEdgeInsetsMake方法中,顺序是上、左、下、右。可能重复的可能重复的可能重复的可能重复的非常感谢“Dheeraj D”这也很有效,但我一直在寻找一个有代码的解决方案。非常感谢“Dheeraj D”这也很有效,但我一直在寻找有代码的解决方案。