创建iOS应用程序

来自RAD Studio
跳转到:航行,搜索

转到iOS移动应用程序开发


要创建iOS应用程序:

文件>新建>多设备应用程序-德尔福
文件>新建>多设备应用程序-C++生成器

然后在多设备应用程序向导。

FireMonkey iOS工作流

在FireMonkey iOS开发过程中的不同时间,您需要在开发平台或Mac上工作。完成所需的设置步骤并在RAD Studio IDE中编译项目后,运行项目会将可执行库和必要的库转移到Mac。

重要提示:从这里开始

  • 在开始第一个iOS项目之前,必须在Windows和Mac上执行几个重要的安装和设置步骤。例如,您需要提供设置配置文件用于在Mac上测试应用程序时要使用的任何特定iOS开发设备。

然后按照以下一般顺序开发项目:

RAD Studio中的步骤

  1. 使用以下任一方法启动项目多设备应用程序向导:
    文件>新建>其他>Delphi>多设备应用程序
    文件>新建>其他>C++Builder>多设备应用程序
  2. 在中选择多设备应用程序类型多设备应用程序向导,例如分页式,或空白应用程序.
  3. 这个硕士视图显示在表单设计器.
  4. 选择iOS设备-64位平台以查看iOS的所有可用组件,否则它们显示为灰色。
    使用表单设计器代码编辑器在RAD Studio中向窗体添加控件,设置属性和事件的值,以及编写后面的代码。
提示:通过使用移动教程:移动应用程序开发(iOS和Android).

样式选择器

在多设备的顶部表单设计器是样式选择器:样式表单Des.png

样式选择器的下拉菜单列出了可以应用于硕士视图。

选择网间网操作系统样式选择器中的样式,以根据目标平台查看组件上的所有属性。

视图选择器

在多设备的顶部表单设计器是视图选择器:视图FormDes.png

视图选择器的下拉菜单列出了所有可用视图,其中显示了不同的平台,如iOS、Android、Windows和OS X。

使用硕士视图查看应用程序的总体设计。然后你可以添加新视图以针对特定设备类型自定义应用程序。您甚至可以创建新的自定义视图;看见将自定义视图添加到视图选择器。标准iOS设备视图为:

  • iPhone 3.5英寸
  • iPhone 4“
  • iPad迷你版
  • iPad电脑

所有视图都继承硕士视图。有关更多信息,请参阅表单设计器.

注:如果只想为iOS自定义应用程序的某些方面,可以使用网间网操作系统视图。或者,您可以使用条件编译在运行时执行iOS特定代码。

另请参见移动教程:使用布局调整不同的表单大小或方向(iOS和Android),它显示了如何使用硕士查看不同的外形尺寸(如手机或平板电脑),而不对每个外形尺寸使用不同的视图。

iOS与桌面平台的首选组件

在iOS平台上,本机样式和格式与桌面平台应用程序的样式和格式不同。也就是说,您的多设备应用程序应该遵守iOS平台上有关组件格式和放置的iOS特定规则。

例如,下面列出了桌面平台中常用的FireMonkey组件与iOS首选组件的比较:

关键组件差异:

桌面组件 iOS组件

T树视图

T列表视图
列表框组件

TRadio集团
T收音机按钮

T分段控制
列表框

T复选框

刀闸

T菜单栏
主菜单

带按钮的TToolBar
TTab控制


iOS应用程序的首选FireMonkey组件:

按钮控件 T编辑 T日历编辑 T列表视图
T机架条 TTab控制 T速度按钮 到文本框
刀闸 T组合框 T工具栏 T滚动框
T标签 T数字框 列表框组件 进度条组件
T面板

有关PDF和视频格式的更多信息(包括格式和风格的具体建议),请参阅EDN文章使用Delphi XE4进行iOS用户界面设计.

例如EDN文章包含在iOS应用程序中使用常见组件(如TListBox、TListView、TToolBar和TSpeedButton)的提示,以及详细的演示,向您展示如何在iOS平台上创建设置应用程序:

单个帧示例来自使用Delphi XE4进行iOS用户界面设计

列表框规则.png
  TListBox规则

列表视图规则.png
  TListView规则

设置演示.png
  设置演示


FireMonkey iOS应用程序的组件限制

在RAD Studio中设计iOS应用程序时,只能使用iOS设备支持的组件。当iOS设备平台(iOS设备-64位)是主动目标平台对于您的项目,不支持的组件显示为灰色工具选项板.

注:请记住,RAD Studio仅支持64位iOS设备。

iOS目标平台上不接受国际(Unicode)字符

iOS应用程序中有几个地方不接受国际(Unicode)字符。例如,名称如赫莱内éléments公司可以阻止iOS应用程序运行。

特别是,在以下情况中不要使用国际字符:

  • 您的Windows用户名
  • A类连接配置文件名称
  • 您的iOS项目名称
  • 应用程序包的名称(.app应用程序可执行文件)

当您尝试构建包含Unicode字符的iOS应用程序时,会出现以下消息:

无法获取应用程序包的完整路径。没有这样的文件或目录

在这种情况下,iOS应用程序是在PAServer服务器 草稿目录,但它不在iOS设备或模拟器上运行。

此外,当使用C++创建iOS应用程序时,不要使用系统::UnicodeString与…混合标准::wstring这背后的原因是标准::wstring使用4字节字符(wchar_t型),同时系统::UnicodeString使用2字节字符(字符16_t).

在iOS应用程序中使用自定义字体

您可以在iOS应用程序中使用自定义字体。

自定义字体的一个用途是在移动应用程序中用作图标。True-type字体比光栅图像文件有优势,因为字体重量轻,基于矢量,所以可以很好地缩放到高分辨率。您可以将自己的自定义字体安装到开发系统上的系统字体库中。然后,自定义字体应该在IDE中可用,供您在设计时选择。

但是,如果此时将应用程序部署到目标设备,则应用程序中的字体将仅使用设备上可用的已安装字体进行呈现。您需要使用部署管理器以确保您在设计时在IDE中看到的字体复制到设备。

以下是在iOS应用程序中加入自定义字体的基本步骤:

  1. 在Windows系统上安装自定义字体。
    • 请参阅Windows帮助和支持在您的系统上获取说明。
    • 例如,右键单击字体文件,然后单击安装.
  2. 将字体文件添加到项目的根目录中。
  3. 对象检查器,将字体指定给文本设置/字体使用该字体的控件的属性。
  4. 自定义info.plist文件对于iOS,并在顶层添加以下内容<字典>标签:
    <键>UI应用字体</key>
    <数组>
      <字符串>FontAwesome.ttf字体</string>
    </array>
    
  5. 将字体文件添加到项目中部署管理器.

创建使用自定义安装字体的移动项目的完整说明和可下载文件(象形异体字)可在此处获得:

要了解字体在特定移动设备上的运行时是否可用,需要检查目标设备上是否支持您在设计时使用的字体。

在iOS应用程序中发布表单

通常,多设备应用程序不应同时在内存中保存多个表单。移动设备是内存约束的,表单是内存密集型对象。

建议的策略是显示一个表单,当它不再可见时,释放该表单(使用打开关闭事件处理程序并设置关闭事件caFree公司,或通过调用系统。TObject(目标)。处置表单的方法)。

使用具有多个页面的选项卡控件可以是一种更节省内存的机制,用于显示多个类似表单的控件。

在iOS应用程序中使用框架

RTL公司

一些提供基本功能的RTL单元对于所有平台都是通用的,例如系统系统。系统实用程序.

许多RTL装置仅适用于iOS(请参阅iOS Objective-C框架). 这些单位的前缀为iOSapi公司 单位范围.

另请参见iOS C RTL.

FireMonkey公司

这个FireMonkey框架是iOS的理想选择,它还支持许多其他平台。请参阅FireMonkey平台先决条件.

VCL(不适用于iOS或Mac)

VCL仅在Windows(32位或64位)上可用。

iOS Objective-C框架(iOSapi)

RTL包含许多单元,这些单元为用Objective-C编写的iOS框架提供Delphi和C++接口。这些单元的范围包括iOSapi公司和通常位于/源/rtl产品安装目录:

  • 伊萨皮。资产库
  • 伊萨皮。AV基金会
  • 伊萨皮。可可类型
  • 伊萨皮。核心音频
  • 伊萨皮。核心数据
  • iOSapi公司。核心图形
  • 伊萨皮。核心图像
  • 伊萨皮。核心位置
  • 伊萨皮。核心媒体
  • 伊萨皮。CoreMotion公司
  • 伊萨皮。核心电话
  • 伊萨皮。核心文本
  • 伊萨皮。核心视频
  • 伊萨皮。基础
  • 伊萨皮。GLKit公司
  • 伊萨皮。媒体播放器
  • 伊萨皮。OpenGLES公司
  • 伊萨皮。石英砂芯
  • 伊萨皮。UI工具包

FireMonkey框架依赖于其中一些单元。

iOS库文档

有关这些API的帮助,请参阅Apple文档,网址为iOS开发人员库.RAD Studio不为您可能需要在Mac上使用的库提供帮助。

您还可以在iOS开发中心。是iOS开发人员计划使您能够在App Store中分发应用(还有其他要求,如开发人员证书和配置文件)。有关更多信息,请参阅http://developer.apple.com/programs/ios/gettingstarted/

OpenSSL支持

云组件印度需要OpenSSL来支持HTTPS。如果您的iOS应用程序将这些技术中的任何一种与HTTPS结合使用,则必须将项目配置为包含所需的库:libcrypto密码libssl数据库.

  • 对于iOS设备目标平台(iOS设备-64位),它不支持动态库,您需要这些库文件的静态版本(libcrypto。libssl。). 要获取这些库文件,请从源代码构建它们。下载源代码来自Github并遵循中所述的步骤教程:为iOS(iPhone/iPad)构建OpenSSL的脚本编译这些库。
    拥有这些库文件后,将其复制到项目搜索库的文件夹中,例如主项目文件夹。


为了有一个使用OpenSSL库的工作应用程序,您需要添加IdSSL笔SSL标头_静态单元到项目的任何uses子句。

创建C++iOS应用程序时,在获得所需的库之后,必须将项目配置为与它们链接。选择项目>选项>C++链接器,并将“Link with SSL and Crypto”设置为真的.

加载和部署文件

为iOS设备目标平台部署应用程序时(iOS设备-64位),如果计划随应用程序一起提供文件以在运行时加载这些文件,请使用部署管理器将这些文件放在启动\文档文件夹。

更改为启动文档.png

使用以下代码在运行时查找这些文件:

德尔福:

T路径.联合收割机(T路径.获取文档路径, '文件名')

C++语言:

系统::Ioutils公司::T路径::联合收割机(系统::Ioutils公司::T路径::获取文档路径(), L“文件名”)

在这里文件名是文件的名称,例如数据库演示程序.gdb在上面的屏幕截图中。这个T路径记录在系统。IO实用程序单位,所以您需要添加对该单元的引用.

仅为iOS编写代码

您可以使用条件编译编写仅在目标平台为iOS时生成的代码。

在Delphi中,您可以使用以下内容预定义条件:

{$IF定义(IOS)和定义(CPUARM)}
//代码仅适用于iOS设备。
{$ENDIF}

{$IF定义(IOS)和定义(CPUARM64)}
//代码仅适用于64位iOS设备。
{$ENDIF}

在C++中,苹果建议使用目标条件。小时头文件,其中系统.hpp头文件包括:

#如果(TARGET_OS_IPHONE)
//代码仅适用于iOS设备。
#结尾

#如果(TARGET_OS_IPHONE)&&(__arm64__)
//代码仅适用于64位iOS设备。
#结尾

另一种选择是使用sysmac系统。小时头文件,其中系统.hpp头文件还包括。与前面的C++代码相比,使用以下代码可以避免专门检查设备是否支持32位或64位编译器体系结构:

#if(_PLAT_IOS)
//代码仅适用于iOS设备。
#结尾

#如果(_PLAT_IOS64)
//代码仅适用于64位iOS设备。
#结尾

或者,您可以使用定义来检测iOS编译器:

有关特定于平台的定义的更多信息,请参阅预定义宏预定义条件.

实施iOS特定功能

以下主题描述了如何在应用程序中实现某些iOS特定功能:

在中查找有关其他与平台无关的功能的文档FireMonkey应用指南.

另请参见

样品