最近,iOS View是在不使用Interface Builder的情况下通过代码生成的。
当时,我正在使用称为SnapKit的OSS,但我有点担心如何生成具有固定长宽比的View,因此我将其保留为Tips。
对于Interface Builder
如果您从
添加新约束中选中"宽高比",则可以。
对于SnapKit
长宽比根据宽度固定
1 2 3 4 5 6 | aView.snp.makeConstraints { make in let width = 100 let ratio = 0.5 make.width.equalTo(width) make.height.equalTo(aView.snp.width).multipliedBy(ratio) } |
好吧,在声明像这样固定View的人(这次宽度)与以相等于固定相依的人(这次的高度)相同之后,像往常一样设置它,然后乘以通过增加比率是可能的。
使ImageView适合图像
通过这种想法,您可以在使用AutoLayout保持图像的纵横比的同时,将ImageView设置为良好的感觉。
使ImageView适合图像
1 2 3 4 5 6 7 8 | imageView.snp.makeConstraints { make in let ratio: CGFloat = { let size = imageView.image!.size return size.height / size.width }() make.width.equalToSuperview().multipliedBy(0.8) make.height.equalTo(imageView.snp.width).multipliedBy(ratio) } |
现在,您可以将ImageView的宽度设置为父视图的宽度的0.8倍,并使ImageView适应图像的长宽比。