1
"kg/lbs"의 두 가지 범주가있는 레이블 ('profile/uid'에 저장 됨)의 firebase 데이터베이스에서 사용자를 "가중치"라고 부릅니다. 나는 라벨을 통해 사용자의 체중을 kg로 표시 한 다음 lbs로 페이드 아웃 한 후 다시 kg로 되돌릴 수 있도록하고 싶습니다. 지금까지 내가 지속적으로하고 파운드의 무게 페이드 아웃되고 다음과 같은 코드를 작성하고 난 kg 번 페이드 아웃 파운드에이 무게를 표시하는 방법을 확실 해요 :CAAnimation을 사용하여 두 변수를 무한대로 회전
func weight() {
let userRf = self.firDatabaseRef.child("profile").child("\(User!.uid)").observe(FIRDataEventType.value, with: { (snapshot) in
if snapshot.exists() {
if let weight = snapshot.childSnapshot(forPath: "weight").value as? [String: AnyObject] {
if let kg = weight["kg"] as? Float, let lbs = weight["lbs"] as? Int {
let animation: CATransition = CATransition()
animation.duration = 2.0
animation.type = kCATransitionFade
animation.repeatDuration = .infinity
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
self.displayWeight.layer.add(animation, forKey: "changeTextTransition")
self.displayWeight.text = "\(lbs) lbs"
}
}
}
}
}
이것은 아주 고마워! –
또 다른 빠른 질문입니다. 만약 내가 타이머를 사용하여 표시 할 변수가 2 개 이상이라면 어떻게 될까요? 지금까지 나는 타이머 내에 if 문을 사용하여 각각의 변수를 하나씩 보여줍니다. 변수가 하나라도 있으면 타이머가 마지막 변수에 도달하면 첫 번째 변수를 다시 표시합니다. 따라서 다시 변수가 표시됩니다. 마지막 변수를 표시합니다. –
@UmarYaqub 먼저 표시 할 항목 수를 확인하여 표시 할 항목 수를 결정해야합니다. 그런 다음 배열에 추가합니다. 애니메이션 코드는 임의의 수의 항목을 설명하기 위해 리팩토링되어야하지만 타이머 블록이 실행될 때마다 배열의 요소를 통해 회전하기가 어렵지 않아야합니다. – nathan