我有一个父ViewController,它会打开第二个。 第二个ViewController包含图像中的网格视图。
当我再次回到同一个屏幕时,我发现布局已更改为
在第二张图片中,UIImage与标签重叠。
这是我的InterfaceBuilder设置
我使用以下代码更改大小和EdgeInsets
func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath: IndexPath) -> CGSize {
let width = collectionView.frame.size.width/2 - 8*2
if let cell = collectionView.cellForItem(at: sizeForItemAtIndexPath) {
return CGSize(width: width, height: cell.frame.height)
} else {
return CGSize(width: width, height: 104)
}
}
func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForSectionAtIndex : NSInteger) -> UIEdgeInsets {
return UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8);
}
为什么第一次只有布局是正确的,然后布局改变,任何线索?
EDIT1:
以下是3D调试的屏幕截图
答案 0 :(得分:1)
尝试将UILabel的<ng-content *ngIf="ref != null"></ng-content>
约束赋予图像。点击然后运行。
但在此之前,请确保您不需要静态高度aspect ratio
。如果您希望imageView
的高度不是增加或减少设备,那么只需给imageView
静态height constraint
而不是纵横比。你的问题将得到解决。
答案 1 :(得分:0)
尝试在xib文件中的UIImageView上将clipToBounds
设置为true