汉语字典相关简介及问题
一、 汉语字典的相关功能
1. 索引页
通过启动进入索引页,可以搜索我们需要的汉字,拼音,部首笔画。拼音拼音检字和部首检字是用UISegmentedControl实现,控制了拼音检字和部首检字View视图的出现最近搜索是显示最近搜索的或者所浏览的汉字。其中用到了数据库,点击对应的字对应的字会更新先后顺序,设定了最近搜索的个数为十个,将这些字放在了数组里,如果超过了数字的长度,则数据库进行删除操作,删除更早的字。搜索功能的搜索则是进行了网络请求,将搜索框内的内容和对应的字符串拼接推送,也需要使用到我们创建好的数据库。搜索数字则是直接跳转到对应数字所对应的部首。如下图(1)
图(1)
2 、按照拼音字母检索
点击对应的字母推送到相应表视图的头,用户可以寻找对应的拼音,按照部首笔画检索即点击对应数部首笔画会推送到对应数字的笔画的部首,用户可以根据部首来找到对应的汉字,拼音和部首的界面也用到了数据库,一个pinyin.Sqlite文件和一个bushou.sqlite文件。从文件中取出相应的数据放入表视图中。右侧的索引为自定义视图,如下图(2):拼音界面和图(3)部首界面:
图(2) 图(3)
3.汉字列表
这里运用了网络请求,如果是通过拼音检索查找汉字,就将拼音与对应网址的字符串拼接,同理,部首和汉字也是,这样也涉及到了点击表视图cell获取相应的内容,涉及到传值等问题。而后进行网络请求获取对应的汉字列表。如下图(4),为点击拼音的汉字列表:
图(4)
关于汉字的发声,由于没有对应的网络接口,则直接使用系统的类库AVFountation使其发声。
4.汉字详情
下方有一个tabBar,书法家即普通的页面,整个汉字的信息,复制为复制下方显示的textView的内容,内容可能为汉字的基本信息,汉语字典,组成成语,英文翻译。收藏可取消收藏则是将本页面的汉字放入数据库或从数据库删除。在我的收藏页面显示出来。,分享则是用友盟的shareSDK实现,将textView的内容分享到新浪微博,腾讯微博或人人网。如下图(5):
图(5)
5.更多
在第一点讲了主页,主也的导航控制器右边有一个更多的按钮,可以推送到更多的视图。其中包括“我的收藏”,“分享”,“意见反馈”,“精品应用”,“应用打分”,“关于我们”。
(1)我的收藏
我的收藏页面在刚刚的第4点汉字详情中提到过,即是用户自己收藏的汉字,用户可以取消收藏删除已经收藏的字,也可以在我的收藏中删除已经收藏的字,当然,这里也涉及到数据库的问题,当用户删除已经收藏的字后,对应的字则会在数据库中删除。收藏时间也会在表视图的header中显示,如下图(6)所示:
图(6)
(2)分享
像上面第4点:汉字详情中提过的分享,点击分享过后则会向新浪微博,腾讯微博,人人网分享,这里也是使用了第三方类库shareSDK。
(3)意见反馈
意见反馈采用了发邮件的方式,用户可以写上自己的建议来发送邮件,这里利用了系统的MessageUI类库实现,用户在写好自己的意见过后,点击提交即可到达发送界面,不过不好的地方就是需要用户登录自己的邮箱才可以,进入发送界面后,点击发送即可。如下图(7)所示:
(4)精品应用
精品应用即推荐的应用,这里只是连接到应用的官方地址。
(5)关于我们
即开发者的一些个人信息。如下图(8)所示:
二、 开发中遇到的问题
1. 在本项目中,最令人头疼的就是网络请求和数据库操作,网络请求在字符串拼接的问题上需要许多传值,稍有不慎便会搞错。
2. 在数据库操作中涉及到数据的查询,增加,改变,删除,在细节方面需要花费许多时间和精力去完成,作为一个对数据库不怎么了解的人,数据库是一大难点,还有许多需要改善和学习的地方。
3. 在数据从网络请求回来,加载进入tableView中,有时点击有些字程序会崩溃,找了好久才找到数据请求回来后,有些是没有数据的,加上如果数据是空的就显示“无”的判定后才解决。
三、 总结
通过这次汉语字典项目的完成,项目中应用到了挺多知识,UI中基本的复杂的控件,tableView等,网络请求,数据库,虽然这些知识用了过后还有点懵懂,但是也让自己有了很大的收获。