如何设置集合视图单元格大小与iOS中的集合视图完全相同?

时间:2016-11-04 00:05:13

标签: ios swift uicollectionview

我想设置一个集合视图,它只显示一个元素,并且水平滚动。如果集合视图与superview(手机大小)的宽度相等,我想知道如何为两者设置相同的大小。

任何帮助都将非常感激。

3 个答案:

答案 0 :(得分:6)

简单回答:

UICollectionViewDelegateFlowLayout添加到您的班级 然后使用此方法:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: yourCollectionView.bounds.width, height: yourCollectionView.bounds.height)
}

使其水平:

enter image description here

答案 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传递任何数据。