2017-05-25 27 views
1

我已经设置了一个包含一组标签,每个属于特定部分的堆栈视图的故事板。在这堆栈标签下面运行一个集合视图,其项目单元大小取决于其正上方的标签。故事板视图(iphone 4/5/6)布局影响收集单元大小(以编程方式设置)

即第一列的单元格大小的宽度和高度设置为编程的宽度和高度,直接作为其上方标签的宽度。

我通过完成这一点:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {} 

的问题是,从返回标签的宽度,

label.bounds.width 

等于什么故事板“查看:”是目前正在运行,而不是模拟器运行。

如果我的故事板是“查看方式:iphone 7”,和我的模拟器运行的是iPhone 5的返回的标签的宽度相当于什么标签宽度将是iphone 7然而,如果模拟器与故事板中的“查看为:”相匹配,所有设备都可以正常工作。

我所有的约束条件都被设置好了,标签栈和集合视图可以调整大小,而不管任何iphone/ipad。单元格宽度似乎是问题。

我刚刚开始ios开发,所以我可能不会很熟悉这些效果如何。

回答

0

如果有人有类似的问题,我通过修正了这个问题,在我的项目:

// collectonViewOutlet is an outlet to the collection view I am working 
// with 
    override func viewWillLayoutSubviews() { 
     collectionViewOutlet.reloadData() 
     } 

我不完全知道为什么发生问题,但它可能有一些东西做的时间在其中意见正在被加载。

相关问题