我想将“图像”帧的大小调整为一个正方形,该正方形占用屏幕的相同宽度,因此高度的值(屏幕宽度)相同。
以下代码不起作用,因为它使图像具有相同的视图高度。
public class DataWrapper<T extends MyCategory> {
private T data;
private EventType type;
// getters and setters omitted for the sake of brevity
}
答案 0 :(得分:6)
尝试使用Geometry Reader
let placeholder = UIImage(systemName: "photo")! // SF Symbols
struct ContentView: View {
var body: some View {
GeometryReader { geometry in
Image(uiImage: placeholder)
.resizable()
.frame(width: geometry.size.width, height: geometry.size.width, alignment: .center)
// .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .center)
.clipped()
}
}
}
答案 1 :(得分:1)
您可以为此创建一个UIScreen
扩展名。喜欢:
extension UIScreen{
static let screenWidth = UIScreen.main.bounds.size.width
static let screenHeight = UIScreen.main.bounds.size.height
static let screenSize = UIScreen.main.bounds.size
}
用法:
UIScreen.screenWidth
答案 2 :(得分:1)
最简单的方法是使图像可调整大小并将其纵横比设置为1:
var body: some View {
Image("someImage")
.resizable()
.aspectRatio(1.0, contentMode: .fit)
}
答案 3 :(得分:-1)
您可以使用UIScreen.main.bounds .width 或 .height
.frame(
width:UIScreen.main.bounds.width,
height:UIScreen.main.bounds.height
)