2013-05-10 2 views
4

매 초마다 진행률 표시 줄을 실행 중입니다. 진행률 막대의 '진행'변수의 변경 사항은 초당 약 0.003의 크기를 가지므로 300 초 이상 실행해야합니다.낮은 값으로 진행되는 UIProgressView 문제

'progress'변수의 값이 낮을 때 문제가 있음을 발견했습니다. 기본적으로 0.09와 그보다 낮은 값 사이에는 차이가없는 것 같습니다. 따라서 진행 상황은 진행률 막대가 0.0 - 0.09 범위에있는 경우 진행률 변수가 변경 되더라도 시각적으로 변경되지 않습니다. 또 다른 부작용은 0.0에서 진도 표시 줄을 시작하면 즉시 0.09 정도의 이미지로 점프합니다 (실제 진행이 완료 될 때까지 계속 남아 있습니다). 조금 이상하게 보입니다.

진행률 표시 줄의 다른 곳에서는 문제가되지 않는 것 같습니다. 1.0에 가까운 것을 포함하여 다른 곳에서는 0.003 진행률 막대를 이동할 수 있습니다.

큰 문제는 아니지만 누군가이 문제를 해결할 수 있는지 궁금해하고있었습니다.

미리 감사드립니다.

+0

진행률 막대의 너비는 얼마입니까? Retina 디스플레이에 있습니까? – Undo

+1

너비는 110이었고 시뮬레이터에서 망막과 정상의 차이는 적어도 볼 수 없었습니다. 귀하의 의견을 바탕으로 너비를 더 크게 만들려고했는데 그 효과는 더 작은 "dead"범위 였지만 여전히 300 너비 진행률 표시 줄이 중요합니다. 나는 더 긴 바의 정확성에 대한 추론을 보았다고 생각하지만, 여전히 바가 작은 데드 존 이후의 모든 포인트에 대해 잘 움직이는 이유는 나에게 이해가 가지 않는다. – user2371691

+0

나는 5 년이 지난 지금 너와 똑같은 문제가있다.이 아주 이상한 버그는 무엇인가? 나는 그것을 해결할 수 없다. –

답변

0

2 개의 진행 막대를 사용해보십시오. 하나는 마이크로 용이고 다른 하나는 매크로 용입니다. 마이크로 막대를 사용하여 매크로 막대에서 0.1 범위를 나타냅니다. 그렇게하면 미세한 움직임을 보여줄 수 있습니다.

+0

아이디어를 제공해 주셔서 감사합니다. 나는 마이크로 바의 너비를 100 너비의 매크로 바 10으로 만든다. 불행히도 마이크로 바는 너무 작아 변경 사항을 등록 할 수 없습니다. 나에게 그것은 1.0에서와 똑같은 0.001로 보입니다. 기본적으로이 크기에는 0.0 (빈 막대)에 대한 이미지 하나와 그 위에있는 모든 이미지 (전체 막대)가 있습니다. 이것은 스토리 보드에서 그것을보고 망막과 비 망막을 시뮬레이션하는 것에서 모두 사실입니다. 내가 오해하지 않는 한. – user2371691

+0

나는 당신이 오해했다고 생각합니다. 나는 마이크로 바를 사용하여 매 0.1 초를 반영하도록했다. 예를 들어, 현재 카운트는 0.452입니다. 매크로 막대에 0.4를 반영하고 마이크로 막대에 0.52를 반영합니다. 귀하의 카운트가 0.452에서 0.482로 증가하면 귀하의 매크로는 0.482를 나타내지 만 귀하의 마이크로는 0.82를 보여줍니다. 귀하의 카운트가 0에 도달하면.5 마이크로를 다시 0으로 재설정하고 다시 시작하십시오 ... – sangony

+0

3 개의 막대로 갈 수도 있습니다. 소수점 하나씩. – sangony

1

나는이 게시물이 본질적으로 죽었다는 것을 알고 있지만 복수로 처리하지 않는 방법을 생각해 냈습니다. UIProgressView.

나는 단지 UIProgressView을 잊어 버리고 대신 UISlider을 활용하여 가짜 것을 작성하기로 결정했습니다. [setThumbImage:[UIImage new] forState:UIControlStateNormal] 노브를 제거하고 사용자 상호 작용을 사용할 수 없게되었습니다. 여기에서 슬라이더가 추적을 처리하는 방법을 제외하고는 UIProgressView이 작동하는 방식과 유사한 모든 작업을 수행했습니다.

또한 UISlider을 서브 클래스 화하여 (CGRect)trackRectForBounds:(CGRect)bounds을 사용하여 트랙 높이를 UIProgressView과 비슷하게 설정할 수 있습니다.

다른 사람에게 도움이되기를 바랍니다.