최선의 방법인지는 확신이 들지 않지만
셀 데이터를 넣는 함수가 호출되면 해당 이미지를 파일에서 꺼내와서 메인스레드에서 리사이징 후 넣으니깐 버벅거리는게 줄어든다.
아니다. 지금와서 데이터가 30개쯤되니깐 빠르게 스크롤할때 버벅거린다. 아마 다운샘플링 하는 과정을 메인쓰레드에서 하는 것 때문으로 생각된다.
func setData(data: DoitCompleted, totalcount: Int, index: Int){
let filename = data.imageTitle + ".jpg"
var size = CGSize(width: self.completeImageView.frame.width, height: self.completeImageView.frame.height)
print("이미지뷰 사이즈 : ", size)
DispatchQueue.global().async {
if let fileImage = FileManager.loadImageFromDocumentDirectory(fileName: filename){
let image = fileImage.reSize(to: size)
print("리사이징 이미지 : ", image)
DispatchQueue.main.async {
self.completeImageView.image = image
}
}else {
DispatchQueue.main.async {
self.completeImageView.backgroundColor = .systemGray3
}
}
}
dateLabel.text = data.createDate.changeFormatString(format: "dd일")
yearMonthLabel.text = data.createDate.changeFormatString(format: "yyyy년MM월")
memoLabel.text = data.impression
countLabel.text = "\\(totalcount - index)회차"
}
처음 이미지를 못가져와서 프린트를 찍어보니 이미지뷰의 사이즈를 못가져온다. 스크롤을 해야지 사이즈를 가지고 오고 이미지를 넣어준다.