问题标签 [rubymotion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1221 浏览

iphone - 如何使用 RubyMotion 检测 UISlider 是否被点击?

我有 UISlider:

我希望能够检测到用户何时点击它并知道在哪里。我认为我需要使用UITapGestureRecognizer或类似的东西,但我很陌生,对这一切一无所知。

我可以找出何时点击滑块:

...但它只适用于拇指,所以这不是很有用,我宁愿抓住滑块上的任何水龙头。

任何指向文档的指针或链接将不胜感激。


相关问题/答案,但使用objective-c:可点击的UISlider

0 投票
1 回答
952 浏览

iphone - 如何设置 UISlider 的 MinimumTrackImage 使其不会拉伸?

自从我更新了我的 XCode 后,MinimumTrackImage我的 UISlider 上的现在正在拉伸,而在它像我想要的那样剪裁之前。的MaximumTrackImage行为没有改变。

我怎样才能MinimumTrackImage不拉伸?请注意,我使用 ruby​​motion,但使用 obj-c 的解决方案也是可以接受的。

0 投票
1 回答
1389 浏览

ios - 在 RubyMotion 应用程序中使用 Facebook SDK

我正在尝试将 Facebook SDK 包含在我的 ruby​​motion 应用程序中,但出现以下错误:

架构 i386 的未定义符号:
“_OBJC_CLASS_$_ASIdentifierManager”,引用自:FacebookSDK(FBSettings.o) 中的 objc-class-ref “_OBJC_CLASS_$_SLComposeViewController”,引用自:FacebookSDK(FBNativeDialogs.o) 中的 objc-class-ref “_SLServiceTypeFacebook ",引用自:FacebookSDK(FBNativeDialogs.o) 中的 +[FBNativeDialogs composeViewControllerWithSession:handler:] ld:未找到架构 i386 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)耙中止!命令失败,状态为 (1):[/Applications/Xcode.app/Contents/Developer...]

我已经尝试通过 cocoapod“Facebook-iOS-SKD”添加它

作为供应商项目

我在这里做错了什么?如何让它正确链接?

0 投票
1 回答
373 浏览

objective-c - Facebook SDK 使用 iOS SDK 返回错误的 UID

(这是 RubyMotion 但应该与 Objective-C 完全相同。)

我在 Graph API Explorer (https://developers.facebook.com/tools/explorer) 上运行查询并返回正确的结果(注意:随机 UID,不是真实的):

回报:

但是,在使用 Facebook SDK 的 iOS 中,我运行相同的查询:

这输出:

请注意,uid 与我查询的不同。

问题: 为什么像这样的简单查询会在 Facebook iOS SDK 中返回错误结果,但在 Graph API Explorer 中却没有?

0 投票
4 回答
578 浏览

ios - 在 RubyMotion 中以 Time 对象的形式获取当前月末

我需要在 ruby​​motion 中将当前日历月的结束日期作为 Time 对象。

因此,对于 2012 年 10 月,考虑到当前时间,我需要 2012 年 10 月 31 日午夜作为 的实例Time,而不管当天如何。

我该怎么做呢?

编辑

我很欣赏这些答案,但我没有提及的一件事——抱歉——是我正在使用 RubyMotion 并且 Date 和 DateTime 对象不可用。

基本上,您require在 ruby​​ 中加载的任何内容,我都无权访问。

0 投票
1 回答
4708 浏览

ios - 从 iOS 中的日期删除时区偏移

我需要获取当前NSDate.date时区并删除时区并将其解析为 GMT 日期

返回2012-10-11 11:27:09 -0700

我需要的是这个:2012-10-11 11:27:09 +0000

0 投票
1 回答
537 浏览

c++ - RubyMotion 中的第 3 方 C++ 库

我正在尝试使用 RubyMotion 为 iOS 开发编译一些第 3 方 C++ 库。我有一个围绕库的 Objective-C 包装器,格式为 .h 和 .mm 文件,但我不知道如何处理它们。

我假设它们进入 my_app/vendor/my_lib/,但我如何告诉 RubyMotion 文件?

我已将库添加到我的 Rakefile 中的项目中:

这会拾取 .h/.a 文件。RubyMotion 是否也会获取 .the mm(和相应的 .h)文件,还是我需要将此文件标记为包装器?

0 投票
2 回答
706 浏览

ios - Rubymotion 和指向结构的指针

我正在试验 cocosmotion,一个 Cocos2d 的 Rubymotion 实现。在我正在学习的教程中,我有一个将结构作为参数的方法。我查阅了 Rubymotion 和 MacRuby 文档,但不知道如何根据我需要的结构实例化一个新对象。我认为主要问题是结构以小写字母开头,当我尝试使用它时,Ruby 认为它是一个局部变量。

我相信我遇到了与此处所述相同的问题: https ://github.com/MacRuby/MacRuby/issues/121

有解决方案或解决方法吗?

该结构在 Objective-C 中定义如下:

我试图调用的方法需要一个 ccTexParams 结构。

这是我尝试过的:

当我这样尝试时:

运行时错误是:

我也试过:

错误:

我还尝试以多种不同的方式将其替换为 CcTexParams、_ccTexParams 和 ccTexParams,但没有任何版本可用。

我试过这个:

RubyMotion 抱怨它expected an instance of Pointer, got '#<CcTexParams minFilter=9987 magFilter=9729 wrapS=33071 wrapT=33071>' (CcTexParams) (TypeError)

我尝试直接传递[GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE]给该方法。它抱怨它expected a Pointer but got an Array

也许我应该将ccTexParams库中的重命名为类似的名称CCTexParams?我猜这不是一个理想的解决方法。

0 投票
4 回答
1083 浏览

sqlite - 将 SQLite 与 Rubymotion 一起使用

我想将 C 级 SQLite API 与 Rubymotion 一起使用,但如果可能的话,我不确定如何包含 SQLite dylib 和头文件。

据我了解,dylib 应以下列方式包含:

但这还不够,sqlite3_open仍然没有找到该功能。我猜应该以某种方式指定头文件。

PS 我知道我可以使用 FMDB 来获得相同的功能,但我想知道直接使用 C 库。

0 投票
2 回答
222 浏览

ios - 在 RubyMotion 中,当点击返回链接时如何取消列表刷新?

我是 RubyMotion 的新手,正在努力掌握一些 API。

我的应用程序是一个非常基本的 UITable 列表系列,如果您选择一个项目,您将进入该项目的列表,这是通过推送一个新控制器来实现的。

这一切都很好,但在我的列表控制器之一的 viewDidLoad 方法中,我正在调用一个方法,该方法从互联网刷新列表的数据。我在异步调度队列中运行刷新,所以 viewDidLoad 看起来像这样:

我遇到的问题是,如果我进入此列表,等待刷新完成(通过拖尾调试日志)然后返回并进入另一个列表很好,但如果我进入并立即退出并进入另一个列表之前刷新已完成,应用程序崩溃并出现无法描述的错误,我可靠地告知这是一个段错误。

所以我很确定我需要在关闭控制器之前等待刷新完成,或者在关闭控制器之前以某种方式从调度队列中终止刷新线程。所以我的问题是:

  1. 当您按下左上角返回并关闭当前控制器时,如何捕捉“返回”事件?推动控制器时,您可以免费获得此功能,但我不确定如何捕获返回事件。

  2. 哪种方法是正确的,在关闭控制器之前杀死刷新线程还是等待它完成?杀死它似乎有点不安全,也许我可以向它发送一条消息,要求它完成正在做的事情并退出,然后等待它回复说好的完成。

  3. 您如何获得问题 2 的正确答案?如果我知道如何从 Dispatch'd 线程将消息发送回主线程,这将使这更简单一些。