汉语字典项目总结

学习了UI这么久了,自己试手了一个项目汉语字典,找到接口和切图之后就上手了。这里总结一下这个项目。

整个app的设计。

其实这不是我设计的,不是我设计的,不是我设计的。重要的事情要讲三次。因为这个应用其实是一个成品,我也只是用来练手的。不过没所谓啦,仅仅练手。因为可以下载到成品,所以我也是按照来做了。它整个主要功能就是查字啦。可以直接搜索,可以按照拼音,可以按照部首。三个方面检索,最终进入一个页面,具体介绍这个字。拼音和部首检索中间多一个UITableVIew来展示。还有一个其他的页面,像关于介绍等等无关紧要的页面(因为都是我一个人看的。。。)。因为是一个新手,也不能谈什么框架等高深的东西,只能谈谈细节的东西了。

做了这个app,感觉最麻烦的就是UI的了(不过也没什么好烦的了)。不是困难,只是麻烦,不过该做的也要做了。这个UI的布置主要的适配的问题了。i5,i6,i6p都还好,不过i4s是怎么回事,一个3:2的屏幕,一个在i6上搭建的优美UI怎么到了i4s就变得那么穷矮挫呢?

UI设计,这个汉语字典是一个成品app,我是对应来做的,看到原型图之后这里写图片描述大概想到,一个导航控制器,里面视图,点击搜索或者进去以后进去一个UITableViewController,里面存放这数据,数据库还得自己建。。。不过还好也挺简单的。自己建好数据库以后就按照顺序做下去了。先来说说这个页面布局。我看了之后决定把他分成三块,上面的一个是SegmentedController和UITextView一块,占屏幕的一部分,中间的最近搜索占一部分,最下面的检索部分占一部分。感觉这样的布局能够适配好四种屏幕,不会显得特别丑。

在一开始的时候是每个控件都是按照屏幕来百分比缩放,间距固定,固定好后才发现,在i4s的时候,我的天,下面的检索最后一行剩下一半了。这3:2。。。。
不知道以后会怎么布局,对于一个菜鸟来说感觉就这样吧。

点击拼音或者是按照部首检索之后进去是一个UITableView,里面的数据是用用的是sqlite数据库。主要操作代码如下

+(NSArray*)find
{
    NSMutableArray *array=[NSMutableArray array];

    //将导入的数据库移动到Documents文件夹下
    NSString *originPath = [[NSBundle mainBundle] pathForResource:@"Pinyin" ofType:@"sqlite"];

    NSString *targetPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"pinyin.sqlite"];

    NSFileManager *manager = [NSFileManager defaultManager];
    if (![manager fileExistsAtPath:targetPath]) {
        [manager moveItemAtPath:originPath toPath:targetPath error:nil];
    }
    char *filename = (char *)[targetPath UTF8String];
    //打开数据库
    sqlite3 *db;
    sqlite3_open(filename, &db);

    //操作数据库
    //声明一个陈述
    sqlite3_stmt *stmt = nil;
    //sql语句
    const char *sql = "select * from ol_pinyins";

    int result = sqlite3_prepare_v2(db, sql, -1, &stmt, nil);
    if (result == SQLITE_OK) {
        while (sqlite3_step(stmt) == SQLITE_ROW) {
            //提取数据
            const char *Id = (const char *)sqlite3_column_text(stmt, 0);
            const char *title = (const char *)sqlite3_column_text(stmt, 1);

            AlphabelModel *m = [[AlphabelModel alloc] init];

            m.Id=[NSNumber numberWithInt:[[NSString stringWithCString:Id encoding:4] intValue] ];
            m.pinyin = [NSString stringWithCString:title encoding:4] ;


            [array addObject:m];
        }


    }    return array;
}

然后根据拼音使用接口读取出来,自己对json数据据进行解析。后来才发现有第三方类库。。。自己做一下总是好的。嗯。

网络是用AFNetWorking类库,十分好用,虽然我还没深入。具体实现代码如下:

+(void)netWorkWithPath:(NSString *)path Parmars:(NSDictionary *)parmars CallBack:(CallBack)callback
{
    path = [DomainString stringByAppendingString:path];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    NSDictionary *dict = @{@"format": @"json"};
    [manager GET:path parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {

        callback(responseObject,SuccessType);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSDictionary *info = [NSDictionary dictionaryWithObjectsAndKeys:error.debugDescription,@"info", nil];
        callback(info,FailedType);
    }];
}

还有一些分享的,比如微信啊,QQ啊等等。第一次用微信分享那些。因为是第一次用,所以那些环境配置只要根据它上面的步骤慢慢来设计,配置,就好了~~才怪。。。中间遇到的环境配置问题不断的百度,寻找错误。最终才搞定,也算是经验了。不过到了最后才发现可以通过cocoapods导入。才发现cocoapods真的好强大。真心方便。

整个项目的目录如下这里写图片描述
整个项目开发遵循MVC模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值