- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Core Animation 的新手,也是 RubyMotion 的新手(自 1 月以来一直在 Xcode 中使用 Obj-C)。我需要 AppLabel(它的 png 在名为 AppAppearance.rb 的文件中指定,但它加载的所有动画都在这个文件中)。现在我正在使用 animateWithDuration 但是当标签加载时我需要向左反弹一点。任何可能的帮助将不胜感激,我整天都在兜圈子。我正在尝试使用以下代码:bounce an image in to view以及我在 CAKeyFrameAnimation 上可以找到的任何东西,但我在将 Obj-C 转换为 Ruby 时遇到了困难。谢谢!
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 ) && !@showing )
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
最佳答案
试试这样的方法,Procs 可能有点矫枉过正,但它确实有效!时机远非完美,但我相信你可以解决这个问题;)
# view: The view to animate
# attrs:
# times: How many times the view should bounce
# offset: The distance to the left of the furthest (first) bounce
# change: How much to decrement the offset each bounce
# duration: The duration of the furthest (first) bounce
def bounce(view, attrs={times: 4, offset: 20, change: 5, duration: 0.25})
# The points to animate the view to
@points = []
attrs[:times].times do |n|
new_x = view.position.x - (attrs[:offset] - n * attrs[:change])
# Move the point left, then back to the original position
@points << [new_x, view.position.y]
@points << view.position
end
# An array to hold the blocks containing the animations
@animations = [];
# Needs an animation to move away then back
(attrs[:times] * 2).times do |n|
new_dur = (Float(attrs[:change]) / Float(attrs[:offset])) * (attrs[:times] * 2 - n) * attrs[:duration]
# Add a new movement to the animations array
@animations << Proc.new {
UIView.animateWithDuration(new_dur,
delay: 0,
#Ease out when moving away and in when moving back
options: (n % 2 == 0 ? UIViewAnimationCurveEaseOut : UIViewAnimationCurveEaseIn),
animations: lambda {
# Animate the view to the position at the start of the points array
view.position = @points.first
},
completion: lambda { |completed|
# Remove the first point and first animation from their corresponding
# arrays then run the next animation until there are none left
@animations.shift
@points.shift
@animations.first.call if @animations.length != 0
})
}
end
# Initiate the chain of animations
@animations.first.call
end
关于ios - 使用 CAKeyFrameAnimation(或其他东西?)使图像与 RubyMotion 反弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11094774/
RubyMotion 中是否允许使用 mixin?我有一个包含两个文件的目录。一个是类,另一个是模块。当我在类中包含模块(mixin)时,出现未找到错误。 RM 中自动需要 app 下的所有内容,对吗
我想在 RubyMotion 中定义全局常量。声明全局常量的最佳方法是什么? 如果是 Rails,我认为将全局常量放在 config/initializers/constants.rb 中是常见的方法
这里难住了... 我正在测试 ruby motion 应用程序的 Release模式,但在尝试 rake device mode=release 时不断收到此错误 rake aborted! un
我有两个 Controller - 如何从控制台调用它们中的函数? (主要)> 最佳答案 我能弄清楚如何做到这一点的唯一方法是使用 UIApplication sharedApplication 类方
我正在寻找一种使用 base64 对字符串进行编码的简单方法。在 ruby motion 中,我不能只使用 Ruby 的 Base64encode,因为我无法要求它。所以我想我可以使用 Cocoa
我向 String 类添加了一个额外的方法。我想稍后使用此方法,但出现 no Method 错误。 class String def as_file_full_path NSSear
有没有办法在调用另一个函数时通过 addTarget 调用传递参数? 我也尝试过发件人方法 - 但这似乎也失败了。在不创建全局变量的情况下传递参数的正确方法是什么? @my_button = UIBu
我正在使用 RubyMotion 和 ProMotion gem 开发一个 iOS 应用程序。如何使用 ProMotion 创建自定义表格单元格?如果我使用内置在表格屏幕中,我只能使用默认的 iOS
我无法让 parse 与 rubymotion 一起使用。我尝试使用 cocoapod 并供应该项目。我一定错过了一些微不足道的事情。对我来说,理想的场景是使用 Pod,而不是供应项目,但我会使用
我正在 Rubymotion 中执行一个相当普通的调度队列,但它显然提前退出了。它永远不会通过 initWithContentsOfURL 调用。但是,删除 Dispatch::Queue 包装器并将
我只用 Promotion-Menu's Readme 中显示的代码做了一个新项目.我有这个: # app_delegate.rb class AppDelegate < PM::Delegate
如何将一个版本发布到暂存环境或为企业/临时分发创建一个版本? 这与 AppStore 版本不同,需要不同的配置文件,并且可以选择不同的包 ID。 最佳答案 您需要在您的 Rakefile 中添加一个条
如果这在 obj-c 中 @interface SomeClass : NSObject @property (nonatomic,strong) NSString* name; @end @impl
在网络屏幕内单击下拉菜单时,我的应用程序(这是一个 ruby Motion IOS 应用程序)出现卡住。 def thing open_modal WebScreen.new( name:
有谁知道为什么以下 RubyMotion 代码中的按钮在单击时不会触发 say_something 方法... class HomeViewController < UIViewController
我刚开始学习 ruby motion,在教程开始时我遇到了障碍!教程是《RubyMotion iOS 开发精要》。 这是我的代码: class RootController 2013-12-13
是否有更通用的方法来设置导航栏属性?我想将半透明设置为 false 并将图像设置为标题。对我来说奇怪的是,我可以在 app_delegate.rb 中设置 tintColor 和 barTintCol
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
由于 RubyMotion 似乎在编译时进行了大量类型转换,因此我无法将正确的数据类型传递到 NSMutableURLRequest POST 请求中。它期待 NSData,但我无法弄清楚如何在不引发
我正在使用 RubyMotion(之前一直在 Xcode 中编写 Obj C,但现在由于 Ruby 中的 bkgd,我正在与想要使用 RubyMotion 的人合作) 我有一个带有 2 个文本字段的
我是一名优秀的程序员,十分优秀!