Я новичок в Core Animation и новичок в RubyMotion (с января 2011 года работает с Obj-C в Xcode). Мне нужно иметь AppLabel (png для него указан в файле AppAppearance.rb, но вся анимация для его загрузки находится в этом файле). Прямо сейчас я использую animateWithDuration, но мне нужно немного отскок влево, когда ярлык загружается. Любая возможная помощь в этом была бы оценена по достоинству, я весь день крутился по кругу. Я пытаюсь использовать код из этого: bounce an image in to view и все, что я могу найти на CAKeyFrameAnimation, но я зацикливаюсь на преобразовании Obj-C в Ruby. Благодаря!Использование CAKeyFrameAnimation (или что-то еще?), Чтобы сделать откат изображения с RubyMotion
class AppLabel < UILabel
#-------------------------
DefaultHeight = 45
DefaultWidth = 170
def initWithFrame(frame)
#-------------------------
if (super(frame))
@showing = false
@hiding = false
self.size.width = 170 if self.size.width == 0
self.size.height = 46 if self.size.height == 0
self.backgroundColor = AppAppearance.appLabelBackgroundColor
self.font = AppAppearance.fontWithSize(14)
self.textColor = AppAppearance.appLabelTextColor
self.numberOfLines = 2
end
self
end
#
# method. drawTextInRect
#
def drawTextInRect(rect)
#-------------------------
rect.origin.x += 10
rect.origin.y += 2
rect.size.width -= 30
super(rect)
end
#
# method. show
#
def show
#-------
if ((self.hidden? || self.alpha < 1) && [email protected])
if self.hidden?
self.alpha = 0.0
self.hidden = false
end
@showing = true
UIView.animateWithDuration(
1.0,
animations: lambda do
self.alpha = 1.0
end,
completion: lambda do | finished |
@showing = false
end
)
end
end
#
# method. hide
#
def hide
#-------
unless (self.hidden? || self.alpha == 0 || @hiding)
log('hiding')
@hiding = true
UIView.animateWithDuration(
1.0,
animations: lambda do
self.alpha = 0.0
end,
completion: lambda do | finished |
self.hidden = true
@hiding = false
end
)
end
end
end