ios - Firemonkey 原生 iOS 组件的限制

标签 ios delphi firemonkey delphi-xe6

我对使用原生组件进行 iOS 开发的想法非常感兴趣,因此我正在测试当前可用的两个选项:TMS iCLD.P.F iOS Native Components 。不幸的是,我发现它们都有局限性,使它们变得麻烦或无法使用,尽管我仍然希望我只是忽略了一些东西,因此我在这里问。

我发现的限制:

  • TMS iCL:它要求整个应用程序中的所有原生组件都采用同一表单!
  • D.P.F.:没有允许您将其与 FMX 表单/组件组合的 FMX 包装器。

这是我需要的简化版本。我有 3 个表单,一个带有主菜单(作为按钮)的主表单和两个我想要滑入的表单。这是组件结构:

MainForm
  UINavigationController
    UIButtonA
    UIButtonB
  UIViewController1
    FMXwrapper that wraps Form3 (only in TMS iCL)

Form2
  UIViewController2
    UIButton2

Form3
  Various Firemonkey custom controls

使用 TMS iCL 实现:FMXwrapper 可以使用命令 UINavigationController.PushViewController(UIViewController1) 在 Form3(具有 FMX 组件)中滑动。我也可以在 UIViewController2 中滑动,但是这个表单(UIButton2)上的组件没有显示,这似乎是因为它在另一个表单上而发生的。如果 TMS iCL 确实要求所有组件都在同一表单上,那么它就没用,除非您制作非常小的应用程序,但也许有解决方案?

使用 D.P.F. 实现:您实际上可以嵌入其他单元的表单,因此这里我可以滑入 Form2,但它只会显示这些表单上的 DPF 组件。因此在Form3中滑动不会显示任何组件。有没有任何解决方案或解决方法可以使其发挥作用?

对于如何解决任一组件集中的限制有什么建议吗?

最佳答案

在具有多个选项卡的 Form1(而不是 Form2)上使用 UITabBarController。您可以在 native 控件的选项卡之间滑动。

要让 FMX Form3 滑入,您可以设置 TForm.Transparent := True;。然后使用Form3.Show;显示表格。在 Form3 中有一个包含您的控件的 TPanel/TRectangle。设置 TPanel.Position.X := 屏幕宽度;然后在 TForm.Show 之后将其从右侧滑入动画;

关于ios - Firemonkey 原生 iOS 组件的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736691/

相关文章:

ios - 如何防止CGContext中风路径或绘制路径线条画向上 float /旋转回来?

multithreading - 如何向单个客户端而不是所有客户端发送命令?

delphi - Delphi-TMemoryStream下载内容处理

iOS App - 为每个新的一天更新字符串数组

ios - uicollectionview 在重新加载数据后立即选择一个项目?

Delphi - 任意颜色的 "sepia"例程的实现

macos - 为 OSX 部署/构建应用程序

delphi - 暂时禁用 Delphi 中 TvertScrollBox 组件的滚动?

delphi - 如果未设置属性,则生成编译器错误

ios - 如何创建在 Xcode 7 中存储数据的行?