网易首页 > 网易号 > 正文 申请入驻

Creo教程:如何使用SQLite在Creo中创建日记应用?

0
分享至

有时,您想在iPhone上本地存储数据,而这样做则需要在本地设备上建立数据库。这次,我们将使用SQLite创建一个应用程序,以记录您白天的快乐时光。我们希望将其用作日志,这是一种随时记录您的日常快乐时刻的快速方法。从技术上讲,我们将每条快乐时光记录定义为一条日志行。

一些要求:日志行不可编辑,我们希望将其显示在列表中,并在新窗口中对其进行详细访问。我们希望能够删除它们。

在开始之前,请下载Creo。

好的,让我们开始从Creo界面创建一个新的新项目。

我们不需要此应用程序的导航栏,因此让我们将Creo创建的默认窗口移到NavigationBar1元素外部,然后删除NavigationBar1并保留Window1容器。

如何使用Creo创建本地SQLite数据库

让我们转到“控件列表”面板并搜索SQLite。现在将其放在Project Globals面板上,然后在屏幕上弹出SQLite Database Configurator。我们要创建一个新资产(而不是内存数据库),因此我们从下拉菜单中选择此选项,然后根据应用程序对该新资产进行命名。

现在让我们添加一个名为的表Posts并定义其属性:

  • id属性的主键,自动增量,和独特
  • 一个body属性
  • 和一个date属性

保存数据库时,会将一个新对象添加到Globals —中SQLiteDatabase1。我们使用该对象在应用程序中与Happiness Journal数据库进行全局交互。

如果选择SQLiteDatabase1对象,则可以定义是否要将其用作只读数据源。在我们的情况下,我们需要对它进行读写,因此我们决定将其放置在应用程序的Documents空间中。

如何通过表视图管理数据列表

让我们回到Window1容器,该容器应包括3个区域:标头,插入新日志行的方式以及已添加的日志行的列表。

创建一个自定义标题

这很容易,而且我们之前已经做到了。我们需要一个视图和一个标签。我们将视图背景设置为蓝色#48ADC6FF-,锁定其顶部,右侧和左侧约束,并使其在水平和垂直方向上自动调整大小。然后,我们将标签居中,将其字体更改为更好的字体(Bradley Hand呢?),将其稍微扩大一点,修复其左,右,底部约束,然后让它水平自动调整大小。结果,我们得到了:

定义添加日志行的方法

我们的应用程序必须易于使用,这就是为什么我们要直接从位于应用程序主页上的输入控件中添加新的日志行。

这个新屏幕是屏幕的第二个逻辑区域,因此我们定义了一个新视图,以将Label封装为标题,将TextField封装为添加日志行,并以LineShape控件作为分隔符。TextField控件是单行输入控件:

通过数据库查询在表视图中显示日志行

主窗口的第三个区域是“表格视图”。在其中,我们希望显示到目前为止添加的所有幸福日志行,在这种情况下,由于没有一个UI控件,因此不显示“视图”。

现在Window1,TableView1在其上放一个Table View ,然后进入Layout面板。我们想要将此表视图绑定到可以显示所有日志行的数据库查询,然后执行SQLiteDatabase1前面定义的操作,并添加一个Query- Query1:

使用Creo将查询添加到SQLite数据库非常简单。

我们从“对象”检查器中打开“查询编辑器”,然后将“帖子”表拖放到查询区域。因为我们想以相反的顺序获取日志行,所以我们将其添加ORDER BY date DESC到原始查询中,并得到以下查询:

现在,我们运行查询以检查一切正常,在这种情况下,我们得到一个空列表。让我们保存它,然后将焦点TableView1再次移至该位置。查看对象检查器,我们现在看到SQLiteDatabase1.Query1在数据集属性列表中。 我们选择此数据集,然后更改一些属性值:

  • 像元高度为55像素
  • 将Text属性映射到body,Detail Text映射到date并清除Image属性的单元格属性。
  • 让Identifier属性为id。

如何将日志行记录添加到数据库

当我们向TextField1控件中写入内容并按iPhone键盘上的Enter键时,我们希望将此文本(日志行)保存在Posts表中。

在这种情况下,Text Field控件允许我们拦截控件的DidTapReturn事件TextField1,这对于我们的情况而言是完美的:

我们将变量定义为DatabaseRecord,然后将Posts表属性之一绑定body到该TextField1值。然后,我们将此记录添加到Posts表中,清理TextField1内容,然后重新加载Table View。

我们可以在Creo仿真器中运行该应用程序,以检查是否一切都按预期方式运行,并且可以正常运行-我添加了两条日志行来测试该应用程序:

如何在单独的窗口中显示日志行详细信息

现在我们可以向数据库中添加日志行了,我们希望点击日志行并在新窗口中显示它-因为日志行可以长于TableView控件显示的20-25个字符。

那很容易。我们添加一个Window2容器,然后放一个Button(将用户导航回到主窗口),Label(标签)以显示日志行date,以及TextView(文本视图)以显示日志行body。我更改了一些属性使其更漂亮:

为了告诉Window2您显示特定的日志行,我们需要将日志行传递id到窗口。我们需要的是其中的自定义属性Window2,我们将其称为id。

为了Window2在用户每次点击日志行时显示,我们需要管理控件的DidSelectCell事件TableView1。在那里,我们可以将任何参数传递给 Window2:

使用相同的技术,我们也可以轻松地传递body和date属性。相反,我们决定使用id 来从数据库中检索其他记录属性-这样我们就可以练习如何访问数据。

鉴于事件id是,加载日志行详细信息的理想场所。在这种情况下,我们需要创建一个SQL语句:WillShowWindow2

还有一件事。要完成此用例,我们需要Window2在用户按下“后退”按钮时关闭。因此,我们向后退按钮事件添加了Window2.close(通话) Action。

注意:在此期间,我还更改了后退按钮的颜色和字体,使其更加整洁。

现在,我们可以在CreoPlayer或模拟器中运行该应用程序,将一些快乐的时刻添加到我们的列表中,然后逐一进行导航。

如何从数据库中删除记录

要与iPhone上的列表中的记录进行交互,我们习惯于向左或向右滑动记录,并显示默认操作-在我们的情况下为删除。

好吧,使用Creo获得这种行为真的很容易。展开TableView1控件,选择Cell1添加一个Right Action。多么酷啊?

现在Action,在RightAction1元素事件中添加几行代码,我们做到了:

等待!如果我们浏览日志行详细信息,我们可以看到它仍然是可编辑的。

这是因为我们忘记取消财产Allows editing的的TextView1控制,看到在Object Inspector。

现在我们很好。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
82%到52%!民调显示乌克兰民众拒绝“领土换和平”比例大跳水,“和平是首要的”

82%到52%!民调显示乌克兰民众拒绝“领土换和平”比例大跳水,“和平是首要的”

红星新闻
2026-02-05 16:51:24
特斯拉中国又涨回来了

特斯拉中国又涨回来了

盖世汽车
2026-02-05 13:46:03
既然给脸不要脸,那就彻底撕破脸!王毅外长已经把话挑明了

既然给脸不要脸,那就彻底撕破脸!王毅外长已经把话挑明了

安安说
2026-02-01 14:01:51
重磅!官方宣布:禁止房子大降价,“限跌令”重出江湖!

重磅!官方宣布:禁止房子大降价,“限跌令”重出江湖!

常州壹楼市
2026-01-17 23:59:54
英国战后统计结果显示,之所以不敌中国人民志愿军,是因为不少英军士兵在战斗中被中国人打成了精神病

英国战后统计结果显示,之所以不敌中国人民志愿军,是因为不少英军士兵在战斗中被中国人打成了精神病

桃烟读史
2025-12-13 20:07:17
3年2110万?火箭重金签下的替补中锋每场比赛只能出场10来分钟?

3年2110万?火箭重金签下的替补中锋每场比赛只能出场10来分钟?

稻谷与小麦
2026-02-06 00:29:32
最新民调:多数加拿大人欢迎中国电动汽车,对美国畏惧感降低

最新民调:多数加拿大人欢迎中国电动汽车,对美国畏惧感降低

上观新闻
2026-02-06 05:01:22
经济下行,身边返贫的朋友越来越多了

经济下行,身边返贫的朋友越来越多了

霹雳炮
2026-01-28 22:52:29
乌军四年阵亡5.5万人,俄军一个月就死了3.5万人,这能信吗?

乌军四年阵亡5.5万人,俄军一个月就死了3.5万人,这能信吗?

战风
2026-02-05 16:49:33
2026年村委会将增加一个部门,专门管这些事儿,乡亲们都乐疯了

2026年村委会将增加一个部门,专门管这些事儿,乡亲们都乐疯了

老特有话说
2026-02-05 17:31:36
11岁小玥儿正脸照曝光,长得不像大S,而是妥妥的汪小菲模样!

11岁小玥儿正脸照曝光,长得不像大S,而是妥妥的汪小菲模样!

生性洒脱
2026-02-04 13:24:01
外卖和网约车,已经严重饱和了。

外卖和网约车,已经严重饱和了。

诗词中国
2026-02-03 19:35:07
萝莉岛大雷出现!比想象中炸裂,牵扯多国总统,难怪爱泼斯坦必死

萝莉岛大雷出现!比想象中炸裂,牵扯多国总统,难怪爱泼斯坦必死

北纬的咖啡豆
2026-02-02 22:46:22
女子因肺栓塞不幸走了!医生:天冷宁愿躺一天,也别干这5事!

女子因肺栓塞不幸走了!医生:天冷宁愿躺一天,也别干这5事!

健康之光
2026-01-13 10:54:55
1956年,江青赴苏联治病,向接诊的医生坦言:我和毛泽东同志是政治夫妻

1956年,江青赴苏联治病,向接诊的医生坦言:我和毛泽东同志是政治夫妻

寄史言志
2026-01-27 10:57:11
钱再多有啥用?曝朱媛媛在《小城大事》杀青后,因害怕主动求合照

钱再多有啥用?曝朱媛媛在《小城大事》杀青后,因害怕主动求合照

飘逸语人
2026-02-05 01:48:42
央视亲选“四小花旦”大洗牌:关晓彤边缘,张子枫逆袭,唯她升咖

央视亲选“四小花旦”大洗牌:关晓彤边缘,张子枫逆袭,唯她升咖

社会日日鲜
2026-02-05 15:58:54
大圣透露复仇张本智和关键:赛前专门向薛飞取经!任达华发声力挺

大圣透露复仇张本智和关键:赛前专门向薛飞取经!任达华发声力挺

颜小白的篮球梦
2026-02-05 20:52:07
俄罗斯出口石油搞双标,卖给印度35,卖给中国80,这到底是忘恩负义,还是有别的隐情?

俄罗斯出口石油搞双标,卖给印度35,卖给中国80,这到底是忘恩负义,还是有别的隐情?

史海孤雁
2026-02-02 17:06:22
郑丽文8小时霸气拿回56亿现金,还让中天复台,蓝营终于起死回生

郑丽文8小时霸气拿回56亿现金,还让中天复台,蓝营终于起死回生

boss外传
2026-02-06 06:00:13
2026-02-06 06:43:00
点点凌阁
点点凌阁
分享知识,收获无限
158文章数 4关注度
往期回顾 全部

科技要闻

美团买下叮咚买菜,防御还是进击?

头条要闻

与爱泼斯坦共舞嬉笑的神秘红衣女子身份披露

头条要闻

与爱泼斯坦共舞嬉笑的神秘红衣女子身份披露

体育要闻

奇才:我学生……独行侠:成交!

娱乐要闻

微博之夜卷入座位风波!杨幂超话沦陷

财经要闻

中美"只会有好消息" 经济冷暖看房价

汽车要闻

李想为全新L9预热 all in AI造更好的车

态度原创

艺术
旅游
健康
家居
军事航空

艺术要闻

一幅宋画,带你看最美的雪中之梅

旅游要闻

一片明亮的林间空地(旅人心语)

耳石症分类型,症状大不同

家居要闻

简雅序章 自然且闲适

军事要闻

54岁荷兰王后以预备役军人身份参军 王室解释原因

无障碍浏览 进入关怀版