hsleedevelop
hsleedevelop
hsleedevelop
  • 분류 전체보기 (22)
    • Develop (22)
      • CS (1)
      • iOS (7)
      • Swift (13)
      • SwiftUI (0)

최근 글

  • Xcode 14 빌드 속도 올리는 방법
    2023.01.29
    Xcode 14 빌드 속도 올리는 방법
  • 스토리보드, XIB Inspectable에 enum 연동하⋯
    2023.01.29
  • M1 ARM-64 Simulator 지원하지 않는 프레임워⋯
    2023.01.07
  • String에 HTML 링크 적용
    2023.01.07
  • Xcode 정의로 이동하지 않고 우측 에디터에서 보는 방법
    2022.11.13
    Xcode 정의로 이동하지 않고 우측 에디터에서 보는 방법

인기 글

  • [iOS][Swift] WiFi AP 목록 스캔 또는 장치⋯
    2022.08.28
  • Figma 자동 익스포트 for Xcode, Android⋯
    2022.08.28
    Figma 자동 익스포트 for Xcode, Android⋯
  • Failed to uninstall gitlab-runne⋯
    2022.09.16
    Failed to uninstall gitlab-runne⋯
  • iOS 메모리 사용량 파헤치기
    2022.09.11
  • Xcode 14 빌드 속도 올리는 방법
    2023.01.29
    Xcode 14 빌드 속도 올리는 방법

태그

  • 시뮬레이터
  • Xcode 정의로 이동하지 않고 우측 에디터에서 보는 방법
  • Xcode 빌드
  • Xcode 베젤
  • CSS 적용하는 방법
  • Swift
  • Xcode Definition
  • excldue
  • KingFisher에서 SVG 이미지 다운로드하는 방법
  • Simulator
  • enum 연동하는 방법
  • Xcode 정의
  • Xcode bezel
  • 스위프트
  • xcode 팁
  • html
  • SVG download
  • Link
  • SVG 다운로드
  • Xcode Build
  • Xcode 14 빌드 속도 올리는 방법
  • Xcode
  • architecturel
  • XIB Inspectable
  • Xcode Build 실행 시 명확하게 표시하는 방법
  • Jump to definition
  • SwiftUI 상에서 HTML 출력과 Link
  • xcode 꿀팁
  • Kingfisher SVG
  • ios localization

최근 댓글

전체 방문자
1,465
오늘
2
어제
2

티스토리

hELLO · Designed By 정상우.
hsleedevelop

hsleedevelop

Develop/Swift

KingFisher에서 SVG 이미지 다운로드하는 방법

2022. 11. 13. 13:31
반응형

Feat

  1. 킹피셔를 이용한 이미지 다운로드 함수 작성
  2. URL 경로의 마지막 확장자에 SVG가 있을 경우 SVG를 다운로드 하는 함수
  3. SVGKit 설치 - https://github.com/SVGKit/SVGKit
  4. SVGProcessor 작성
import SVGKit
import Kingfisher

extension UIImageView {
    func kfSetImage(with urlString: String?) {
        if urlString?.hasSuffix(".svg") == true {
            return self.kfSetSVGImage(with: urlString)
        }
        if let imageUrl = urlString.map({ App.config.WebResourceURL + $0 })?.url {
            self.kf.setImage(with: imageUrl)
        }
    }
    
    func kfSetSVGImage(with imageURLString: String?) {
        if let imageUrl = imageURLString.map({ App.config.WebResourceURL + $0 })?.url {
            self.kf.setImage(with: imageUrl, options: [.processor(SVGImgProcessor())])
        }
    }
}

///참고 소스 - https://github.com/onevcat/Kingfisher/issues/1225#issuecomment-692534266
struct SVGImgProcessor: ImageProcessor {
    var identifier: String = "com.ent-bc.yogig.SVGImgProcessor"
    func process(item: ImageProcessItem, options: KingfisherParsedOptionsInfo) -> KFCrossPlatformImage? {
        switch item {
        case .image(let image):
            //print("already an image")
            return image
        case .data(let data):
            let imsvg = SVGKImage(data: data)
            return imsvg?.uiImage
        }
    }
}

//usage
imageView?.kfSetImage(with: urlString)
반응형

'Develop > Swift' 카테고리의 다른 글

M1 ARM-64 Simulator 지원하지 않는 프레임워크 수정하는 방법  (0) 2023.01.07
String에 HTML 링크 적용  (0) 2023.01.07
SwiftUI 상에서 HTML 출력과 Link, CSS 적용하는 방법  (0) 2022.11.13
multi-line 문구 localizable.strings 적용 방법  (0) 2022.10.13
UserDefaults 모든 항목 출력, 경로, 리셋  (0) 2022.09.06
    'Develop/Swift' 카테고리의 다른 글
    • M1 ARM-64 Simulator 지원하지 않는 프레임워크 수정하는 방법
    • String에 HTML 링크 적용
    • SwiftUI 상에서 HTML 출력과 Link, CSS 적용하는 방법
    • multi-line 문구 localizable.strings 적용 방법
    Kingfisher, Kingfisher SVG, KingFisher에서 SVG 이미지 다운로드하는 방법, SVG, SVG download, SVG 다운로드
    hsleedevelop
    hsleedevelop
    iOS, Swift js, node js, react c, c++, .net ruby, sql
    댓글쓰기
    다음 글
    String에 HTML 링크 적용
    이전 글
    SwiftUI 상에서 HTML 출력과 Link, CSS 적용하는 방법

    티스토리툴바