我有一個簡單的UICollectionViewCell
,帶有一個圖像和一個標籤。在常規尺寸的課堂上,我希望圖片處於最佳狀態,並在其下面加上標籤。這就是它看起來像在Xcode的預覽標籤:UICollectionViewCell - 針對不同大小類別的不同佈局
在任何其他級別大小我想圖像出現在左邊,而右邊的標籤:
我設置的約束是這樣的:
ImageView的有以下限制:
- 前緣和頂約束所有-不限
- 固定的寬度和高度的任何-不限
該標籤具有以下約束條件:
- 尾隨約束的SuperView - 所有-任何
- 對ImageView的最大限制 - 僅用於Regular-Regular
- 對Superview的主要限制 - 僅適用於Regular-Regular
- 頂部約束到上海華 - 所有,任何但是對於常規定期
- 導致約束ImageView的不是 - 所有,任何但是對於常規定期
不是我還實施返回不同的方法根據當前的特徵集合單元尺寸:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
if (traitCollection.horizontalSizeClass == .Regular) {
return CGSizeMake(240, 194)
}
else {
return CGSizeMake(340, 128)
}
}
細胞看起來很好的預覽,當我在iPhone上(如緊湊型普通)運行它的一切工作正常。然而,當我在iPad上運行自動佈局打破:
當然,我得到了一堆在調試控制檯的警告:無法同時滿足的約束。
所以,我想問題是 - 爲不同大小類別設置單元格的正確方法是什麼?
我創建了一個github上回購了demo project
謝謝!
如果只支持iOS的9和更高版本,可以通過使用stackView –