我想设置一个集合视图,它只显示一个元素,并且水平滚动。如果集合视图与superview(手机大小)的宽度相等,我想知道如何为两者设置相同的大小。
任何帮助都将非常感激。
答案 0 :(得分:6)
简单回答:
将UICollectionViewDelegateFlowLayout
添加到您的班级
然后使用此方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: yourCollectionView.bounds.width, height: yourCollectionView.bounds.height)
}
使其水平:
答案 1 :(得分:1)
如果您想以编程方式添加它,可以试试这个:
lazy var collectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.minimumLineSpacing = 0
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.backgroundColor = .white
cv.delegate = self
cv.dataSource = self
cv.isPagingEnabled = true
cv.showsHorizontalScrollIndicator = false
return cv
}()
答案 2 :(得分:0)
试用此代码:
设置collectionView以编程方式滚动方向。
bool DonorList::searchID(int memberNumber)
{
Node *current = first;
bool found = false;
while (current != nullptr || !found)
{
if (current->getDonor().getMembershipNo() == memberNumber)
{
found = true;
}
else current = current->getLink();
}
return found;
}
设置collectionView布局
override func viewDidLoad() {
super.viewDidLoad()
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .horizontal
}
}
注意:在Swift 3中测试布局。但是,我希望您考虑使用页面视图。如果您没有从CollectionView传递任何数据。