我对使用原生组件进行 iOS 开发的想法非常感兴趣,因此我正在测试当前可用的两个选项:TMS iCL和 D.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 实现:使用命令 UINavigationController.PushViewController(UIViewController1),FMXwrapper 可以在 Form3(具有 FMX 组件)中滑动。我也可以在 UIViewController2 中滑动,但是这个表单(UIButton2)上的组件没有显示出来,这似乎是因为它在另一个表单上。如果 TMS iCL 真的要求所有组件都在同一个表单上,那么它是没有用的,除非你制作非常小的应用程序,但也许有解决这个问题的方法?
使用 D.P.F. 实现:您实际上可以嵌入来自其他单元的表单,所以这里我可以在 Form2 中滑动,但它只会在这些表单上显示 DPF 组件。因此在 Form3 中滑动不会显示任何组件。是否有任何解决方案或变通方法可以使这项工作发挥作用?
对如何解决任一组件集中的限制有何建议?
Best Answer-推荐答案 strong>
在具有多个选项卡的 Form1 上使用 UITabBarController(而不是 Form2)。您可以在 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/
|