A component that supports network image preview and zooming in and out of images using only SwiftUI. Also support drag and tap to dismiss.
![](https://private-user-images.githubusercontent.com/11688908/238884568-bed6da18-5b50-4441-a771-578138f14885.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk2MDUyNDEsIm5iZiI6MTcxOTYwNDk0MSwicGF0aCI6Ii8xMTY4ODkwOC8yMzg4ODQ1NjgtYmVkNmRhMTgtNWI1MC00NDQxLWE3NzEtNTc4MTM4ZjE0ODg1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI4VDIwMDIyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyMjk2ZTIwYTkwOWM3NjM1NmYyNDc0ZDU4MzJhM2NlMmEzMjc2NjRhNGJjYjUzODU0NTg1NWJhODJkNTJlNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.6edJ21l_pwdc-mEevPrwmwGeNDxuH4xUgIwz_kgPkF8)
- ImagePreview
ZStack { KFImage(URL(string: url)) .resizable() .aspectRatio(contentMode: .fit) .frame(width: 200, height: 200) .onTapGesture { withAnimation { isPresented = true } } } .overlay { ImagePreview(images: [ url ], currentIndex: .constant(0), isPresented: $isPresented) }
ImagePreview is available under the MIT license. See the LICENSE file for more info.