首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift: collectionView细胞

Swift: collectionView细胞
EN

Stack Overflow用户
提问于 2018-07-01 09:19:03
回答 1查看 236关注 0票数 2

我创建了collectionView,我有3个细胞。我想让我的手机看起来像这样,所有设备的屏幕都是这样:

但我有iPad的结果。

怎么修呢?

更新

我在collectionView中添加了UIViewController。对于collectionView,我有这样的限制:

给我的细胞打量:

代码:

代码语言:javascript
复制
func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 4
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

        return 3
    }

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let itemsPerRow: CGFloat = 3
    let itemWidth = (collectionView.bounds.width / itemsPerRow)
    let itemHeight = itemWidth * 1.5
    return CGSize(width: itemWidth, height: itemHeight)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 21:27:31

您需要自适应地更改单元格大小,否则大小不会适用于所有屏幕大小。

您有自己的函数,在其中返回单元格大小:

代码语言:javascript
复制
return CGSize(width: 182, height: 275)

相反,让它像这样适应:

代码语言:javascript
复制
return CGSize(width: self.view.frame.width / 3, height: self.view.frame.height)

或者,若要在两者之间存在差距,则创建一个抵消:

代码语言:javascript
复制
let offset = 10

let width = self.view.frame.width - offset * 4 // 4 gaps
let height = self.view.frame.height - offset * 2 // 2 gaps

return CGSize(width: width / 3, height: height) // Divide into equally-sized cells

当然,可以将self.view替换为您希望单元格适合的任何容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51121988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档