2016-07-31 4 views
0

Я пытаюсь анимировать ширину группы в приложении watchOS2, вызвав animateWithDuration из WKInterfaceController. Идея заключается в том, чтобы показать пользователю горизонтальную линию, которая уменьшает ее ширину справа налево в течение определенного периода времени (что-то вроде таймера):watchOS2 animateWithDuration начинает медленно и ускоряется

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

Однако я вижу, что, как только начинается анимация скорость очень медленная, а затем она увеличивается. Когда анимация остановится (когда ширина таймера близка к 0), анимация снова замедляется. Я хочу, чтобы скорость была одинаковой во время анимации.

У кого-нибудь была эта проблема раньше? Любая помощь приветствуется! Спасибо

ответ

-1

Я сделал простой пример таймера, который я хотел оживить с помощью Core Graphics в приложении watchOS2. Вы можете найти проект 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 для плавного анимирования линии.

 Смежные вопросы

  • Нет связанных вопросов^_^