什么是Image
Image相当于iOS中的UIImageView
如何使用Image
使用SF符号
在苹果设计规范网址,官方提供了Mac版SF符号app,里面提供了很多官方的icon,对于个人开发者来说,是一个大大的福利。
我们在SF符号里选中一张图片,复制他的名字
Image(systemName: "square.and.arrow.up")
同时系统通过imageScale方法给了3个大小,默认是中等:
- small
- medium
- large
Image(systemName: "square.and.arrow.up")
.imageScale(.large)
当然也可以自定义大小
Image(systemName: "square.and.arrow.up")
.font(.system(size: 100))
使用自定义图片
直接输入名字即可
Image("coverImage")
改变大小
如果是直接使用frame的话,是不能改变大小的,需要配合resizable
Image("coverImage")
.resizable()
.frame(width: 100,height: 100)
图片展示类型
如果Image宽高比和图片的不一样,默认图片会压缩或者拉伸 所以提供了aspectRatio方法,并且提供了两个值:
- fit 表示按比例缩放并且图片要完全显示出来,意味着可能会留有空白
- fill 表示按比例缩放并且填满,意味着图片可能超出,需要被裁减掉
Image("coverImage")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200,height: 100)
.background(.blue)
展示如下:
这里需要注意的,使用fill的时候,如果需要裁减掉多于的部分,需要配合clipped()方法
Image("coverImage")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 200,height: 100)
.clipped()
展示如下:
截取形状
Image("coverImage")
.clipShape(Circle())
添加覆盖物
Image("coverImage")
.overlay {
Text("测试")
.foregroundStyle(.white)
.bold()
.font(.system(size: 40))
}
渲染颜色
renderingMode()这个方法会把图片里面的