반응형
환경
>Swift, UIKit
이슈
>UIView를 UIImage로 만들어서 PDF파일을 생성하는 과정에서 백그라운드색 통제가 안됨
삽질
> UIView 백그라운드가 안먹는줄 알고(투명이었음), 백그라운드컬러 설정 시점을 여러번 바꿔봄
>뷰 백그라운드는 문제 없었고 이미지 배경색이 문제였음
해결
>이미지 렌더링 과정에서 이미지 백그라운드 설정
func asImage() -> UIImage {
let renderer = UIGraphicsImageRenderer(bounds: bounds)
return renderer.image { rendererContext in
// 배경색 설정
UIColor.white.setFill()
rendererContext.fill(bounds)
layer.render(in: rendererContext.cgContext)
}
}
func makeImages(diaries: [Diary], font: UIFont, bookID: String)-> [PDFImage] {
var images: [PDFImage] = []
for diary in diaries {
let image = AppFileManager.share.loadImageFromDoument(fileName: Constants.FileNames.imageName(id: diary.objectId.stringValue)) ?? UIImage(named: "damda_text")
let view = PDFView(date: diary.date, question: diary.card?.question, text: diary.text, image: image, font: font)
let viewImage = view.asImage()
images.append(PDFImage(image: viewImage, size: .zero, quality: 1, options: [.compress]))
}
let emptyView = PDFView(date: nil, question: nil, text: "", image: nil, font: font)
let emptyViewImage = emptyView.asImage()
while (images.count % 2) != 0 {
images.append(PDFImage(image: emptyViewImage, size: .zero, quality: 1, options: [.compress]))
}
return images
}
반응형
'iOS' 카테고리의 다른 글
[IOS/ Swift] 메인스레드 작업 우선순위 - Activity Indicator 지연문제 (2) | 2024.11.07 |
---|---|
[iOS] Widget에서 이미지 로드 실패(Failed to load image in Widget) (5) | 2024.09.27 |
[iOS/Swift] Xcode15 업데이트후 빌드실패: WidgetKit Framework 중복 복사 이슈 (1) | 2023.12.08 |
[iOS/Swift] ImageView Zoom기능: Scrollview 보다 Imageview가 커지는 문제 (1) | 2023.12.07 |
[iOS] 아이폰꿀팁 - 와이파이 비밀번호 텍스트 스캔으로 쉽게 입력하기 (0) | 2023.10.05 |