SwiftUI中如何实现类似Android的centerCrop图片居中裁剪?
SwiftUI实现类似Android的centerCrop效果
完全懂这种感受!哪怕有6年开发经验,刚接触新框架时总会遇到这种看似基础但卡壳的小问题,真的没必要羞愧~
要在SwiftUI的Image中实现Android里的centerCrop效果,其实只需要几个简单的修饰符组合就能搞定:
- 首先给图片加上
resizable(),让它可以调整尺寸 - 用
scaledToFill()(或者等价的aspectRatio(contentMode: .fill))让图片保持原比例,放大/缩小到刚好填满目标容器 - 用
frame()指定你需要的宽高 - 最后加上
clipped(),把超出容器的部分裁剪掉
默认情况下,图片会居中对齐后裁剪,完美对应Android的centerCrop。
代码示例
Image("your-image-asset-name") .resizable() .scaledToFill() .frame(width: 200, height: 200) // 替换成你需要的尺寸 .clipped()
如果需要调整裁剪的对齐方向(比如顶部、底部对齐裁剪),只需要给frame加上alignment参数就行:
Image("your-image-asset-name") .resizable() .scaledToFill() .frame(width: 200, height: 200, alignment: .top) .clipped()
刚转SwiftUI的时候确实容易被这些和原生Android不一样的细节卡到,多试几次就顺手啦~
内容的提问来源于stack exchange,提问作者Renegade
相关产品推荐
相关产品推荐

