CollectionViewCell固定大小为Apple News app

时间:2015-11-10 14:41:20

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

我试图让我的应用看起来像苹果新闻应用。

我确实限制了numberOfItemsPerRow,因为我不知道如何让它更改为适合iPad尺寸或任何设备尺寸?

如何让它适合任何ios设备(iPhone和iPad)的问题不仅仅是三个项目/行,高度/外观也不够好。

我希望有人帮忙。

private let leftAndRightPaddings: CGFloat = 32.0
private let numberOfItemsPerRow: CGFloat = 3.0
private let heigthAdjustment: CGFloat = 20.0

// MARK: - View controller life cycle

override func viewDidLoad() {
    super.viewDidLoad()

    let width = (CGRectGetWidth(collectionView!.frame) - leftAndRightPaddings) / numberOfItemsPerRow
    let layout = collectionViewLayout as! UICollectionViewFlowLayout
    layout.itemSize = CGSizeMake(width, width + heigthAdjustment)

}

cellForItemAtIndexPath

    // Configure the cell
    cell.layer.cornerRadius = 2.0
    cell.layer.masksToBounds = true

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您希望它看起来与新闻应用程序完全相同,您可以在photoshop中测量单元格并了解点宽度和高度,并在故事板中设置单元格的高度和宽度。

如果您需要以编程方式更改大小以及想要为特定类型的设备指定大小,则应使用UITraitCollection。你可以这样说:

if self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClass.Regular{
    //set or return size for iPad
}

有关UITraitCollection和大小类的更多信息,您可以阅读它here