2016-07-31 2 views
0

클래스의 animateWithDuration을 호출하여 watchOS2 응용 프로그램에서 그룹의 너비를 애니메이션으로 적용하려고합니다.watchOS2 animateWithDuration이 느려지고 속도가 올라갑니다.

self.timer.setWidth(100) 
self.animateWithDuration(NSTimeInterval(duration)) { 
    self.timer.setWidth(0) 
} 

그 즉시 애니메이션이 시작하지만 제가 보는 : 아이디어는 (타이머 같은) 시간의 기간 동안 왼쪽으로 사용자에게 오른쪽에서 그 폭을 감소 수평 라인을 보여주는 것입니다 속도가 매우 느린 다음 증가합니다. 애니메이션이 멈출 때 (타이머 너비가 0에 가까울 때) 애니메이션이 다시 느려집니다. 애니메이션의 지속 시간 동안 속도가 같기를 원합니다.

이전에이 문제가 있었던 사람이 있습니까? 어떤 도움을 주셔서 감사합니다! 감사합니다

답변

-1

watchOS2 앱에서 Core Graphics로 애니메이션을 적용하고 싶었던 타이머의 간단한 예를 만들었습니다. 당신은 프로젝트를 here

UPDATE 찾을 수 있습니다

func configureTimerWithCounter(counter: Double) { 

    let size = CGSizeMake(self.contentFrame.width, 6) 
    UIGraphicsBeginImageContext(size) 
    let context = UIGraphicsGetCurrentContext() 
    UIGraphicsPushContext(context!) 

    // Draw line 
    let path = UIBezierPath() 
    path.lineWidth = 100 

    path.moveToPoint(CGPoint(x: 0, y: 0)) 

    let counterPosition = (self.contentFrame.width/30)*CGFloat(counter) 
    path.addLineToPoint(CGPoint(x: counterPosition, y: 0)) 

    UIColor.greenColor().setStroke() 
    UIColor.whiteColor().setFill() 
    path.stroke() 
    path.fill() 

    // Convert to UIImage 
    let cgimage = CGBitmapContextCreateImage(context); 
    let uiimage = UIImage(CGImage: cgimage!) 

    // End the graphics context 
    UIGraphicsPopContext() 
    UIGraphicsEndImageContext() 

    self.timerImage.setImage(uiimage) 

} 
: 을 여기에 내가 만든 코드는
1

WatchOS 2는 타이밍 기능을 지정하는 방법을 제공하지 않으므로 애니메이션은 EaseInEaseOut 곡선 (속도가 느리고 속도가 빨라지고 끝에서 느려짐)을 사용하는 것으로 제한됩니다.

using Core Graphics to render the line을 시도하거나 일련의 WKInterfaceImage 프레임을 사용하여 선을 부드럽게 애니메이션 할 수 있습니다.