func setUserImage() {
        switch stepPercent {
        case 0.0 ..< 30.0:
            userImage = Manbo.manbo03
        case 30.0 ..< 50.0:
            userImage = Manbo.manbo02
        case 50.0 ..< 80.0:
            userImage = Manbo.manbo01
        case 80.0 ..< 100.0:
            userImage = Manbo.manbo00
        default:
            userImage = Manbo.manbo100
        }
        
        userImageView.image = UIImage(named: userImage.rawValue)
    }

IMG_1195.PNG

IMG_1197.PNG

IMG_1198.PNG

IMG_1200.PNG

IMG_1201.PNG

만보,,

사랑이 넘치는 만보가 되기까지 과정이 넘 잔인한듯.. 나중에 캐릭터 보완이 필요한 것 같다..나중에...나중에..

오잉 이때는 잘 돌아갔었나..?

바로바로 업데이트가 되지 않아서, didSet 프로퍼티 옵저로 바꾸어 주었다. 근데 또 메인스레드에서만 유아이를 설정해야한다는 오류가..

값 변경에 따라 이미지와 텍스트 바로 바꾸어주기: DidSet, DispatchQueue

var stepPercent = UserDefaults.standard.setpPercent! {
        didSet {
            print("퍼센테이지 바꼈다.")
            DispatchQueue.main.async {
                self.setUserImage()
            }
        }
    }
    var currentStepCount = UserDefaults.standard.currentStepCount! {
        didSet{
            print("걸음수값 변경되었다.")
            DispatchQueue.main.async {
                self.currentStepCountLabel.text = "\(self.currentStepCount)"
            }
            
        }
    }

Untitled

UILabel.text must be used from main thread only

이때에는 메인스레드가 일을 처리하도록 처리를 해주면 된다.

🔖 참고

Hacking with Swift - Challenge 9