2017-11-09 10 views
1

나는 UIProgressView이 있습니다. 텍스트 시작하기 UITextField에 대해 편집 진행률 표시 줄의 값을 1로 설정했습니다. 그 전에 처음에는 0.1 단계로 진행합니다.하지만 한 번만 진도를 설정하고 있습니다. 처음으로 진행률을 0.1로 설정하면 진행 상황을 설정하지 않은 후에 1. 문제가 무엇인지 말해주십시오.iOS에서 진행률 표시 줄 진행률을 두 번 설정할 수 없습니까?

func textFieldDidBeginEditing(_ textField: UITextField) { 
    setViewBottomColor() 

    var view:BottomView? 

    if textField == textFieldEmail { 
     view = self.bottomViewFirst 
     view?.trackTintColor = Constant.AppColor.viewBottom 
     view?.progressTintColor = Constant.AppColor.purpleViewColor 

    } 
    else if textField == textFieldPassword { 
     view = self.bottomViewSecond 
     view?.trackTintColor = Constant.AppColor.viewBottom 
     view?.progressTintColor = Constant.AppColor.purpleViewColor 
    } 
    if view != nil { 
     view?.setProgress(1, animated: true) 
     UIView.animate(withDuration: 1.0, animations: { 
      view?.layoutIfNeeded() 
     }, completion: { (finish) in 
     }) 
} 
} 

func setViewBottomColor() { 

    self.bottomViewFirst.trackTintColor = Constant.AppColor.viewBottom 
    self.bottomViewFirst.progressTintColor = Constant.AppColor.purpleViewColor 
    self.bottomViewFirst?.setProgress(0.1, animated: false) 
    self.bottomViewFirst?.layoutIfNeeded() 

} 
+0

당신은 BottomView 여기에 무엇을 설명 할 수 있습니까? –

+0

하단보기 : UIProgressView – Techiee

+0

IBOutlet 연결을 한 번 확인하십시오. 같은 코드가 나를 위해 일하고있다. –

답변

1

확인해 보았던 코드 스 니펫을 확인하십시오. 잘 작동합니다.

당신은 몇 가지를 확인할 수 있습니다

  1. 모든 IBOutlets의 연결이 있어야합니다.
  2. 맞춤 UIProgressView를 BottomView로 사용하는 경우 xib/storyboard의 진행률보기 클래스도 모두 변경해야합니다.
  3. 아니요 진행 값이 변경되는 경우에만 애니메이션을 볼 필요가 없습니다.

    func textFieldDidBeginEditing(_ textField: UITextField) { 
    
        resetProgresses() 
        var view = UIProgressView() 
    
        if textField == t1 { 
         view = self.progressBar 
         view.trackTintColor = .red 
         view.progressTintColor = .green 
    
        } 
        else if textField == t2 { 
         view = self.progressBar2 
         view.trackTintColor = .green //Constant.AppColor.viewBottom 
         view.progressTintColor = .red//Constant.AppColor.purpleViewColor 
        } 
    
        if view != nil { 
         view.setProgress(1, animated: true) 
        } 
    
        } 
    
    func resetProgresses() { 
        self.progressBar?.setProgress(0.1, animated: true) 
        self.progressBar2?.setProgress(0.1, animated: true) 
    
        } 
    
+0

속도를 변경하고 싶기 때문에 애니메이션을 사용하고 있습니다. – Techiee

+0

애니메이션이 작동하고 있어도 코드가 더 최적화되도록 만드는 방법을 알려주시겠습니까 – Techiee

+0

. 이 코드가 효과가 있습니까? 우리는 한 번 그것의 일을 최적화하기 위하여 볼 수있다 :) –