阅读博客园从0.1到0.2的升级笔记

刚刚将新的阅读博客园提交apple,等待审核,主要解决了以下问题:

1.文本阅读模式字号调整到适合手机阅读。 
2.美工细化,界面更美观。 
3.程序结构调整,整体更流畅。

先看看0.2的界面吧!

阅读博客园从0.1到0.2的升级笔记_第1张图片阅读博客园从0.1到0.2的升级笔记_第2张图片

阅读博客园从0.1到0.2的升级笔记_第3张图片阅读博客园从0.1到0.2的升级笔记_第4张图片

哎,说句题外话,看到我的手机信号没?都是台风惹的祸,把安装在家里的信号放大器刮掉了,报修到今天还没有弄好!

好了,言归正传,继续说0.2的改进。其实最大的改进是第一条:文本阅读模式字号调整到适合手机阅读。

我借用了HTML的知识,把从博客园读下来的RSS内容直接拼接成了一个标准的网页,并在Head头加上了控制缩放的代码实现。

下面就是代码,这行代码可以取消在UIWebView控件中缩放功能:


<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=false;"
        name="viewport">

在安卓上同样使用的时候发现不能禁止其浏览器缩放,看来只能控制iOS。

关于字体的大小控制,我使用em控制而不是px,这样更好控制。

美工方面的改变就不在这里啰嗦了,这是美工的事情,找个美工都能搞定,在这里就贴上0.1版的界面做个对比吧!

阅读博客园从0.1到0.2的升级笔记_第5张图片阅读博客园从0.1到0.2的升级笔记_第6张图片

阅读博客园从0.1到0.2的升级笔记_第7张图片

程序结构的调整,先贴上我的程序文件结构图

阅读博客园从0.1到0.2的升级笔记_第8张图片

原来使用Navigation Controller是在RootViewController里面,造成了进入单个频道页面时返回按钮变成了没有向右箭头的那种(如0.1版界面图2),而且切换效果不一致,是消失而不是滑出。

学习iphone开发这段时间买到的书,看到的网上的文章都是Xcode3.X的,当使用Xcode4时问题就会出来了,变化还是蛮大的。所以0.1版就在结构上变成个混合体。

其实对于Xcode4,可以理解成从VS2003到VS2005的改变,首先IB被整合到了一起,所以不用来回切换。另外很多功能确实可以不用代码而是在界面完成。在0.2版本中,我的改变就是注释掉代码,在界面完成工作。这些工作依旧可以通过代码来实现,和.net的一样的,在这里我就不说代码了,到网上一搜很多的,这里说说直接在界面完成。

看看我的MainWindow.xib结构和主要的属性设置

阅读博客园从0.1到0.2的升级笔记_第9张图片

如果所示,在Window里面我增加了一个Navigation Controller,然后将里面的View Controller的Custom Class改为了我自己建的RootViewController,然后Xcode会自动将View Controller改为Root View Controller,这里Xcode还是比较智能的。好了之后就只需要将Window中的rootViewController和Navigation Controller链接就可以了。这样的操作等于在代码中写rootViewController=??或者addsubView()。这样我的程序就注释掉了如下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    
    //self.rootViewController.view = _rootViewController.view;
    
    [self.window makeKeyAndVisible];
    
    return YES;
}

接下来,整个程序使用Navigation Controller作为整个程序导航器,使用如下代码完成参数传递和推入界面:

    ChildrenChannel *childrenChannel=[[ChildrenChannel alloc] init];
    [childrenChannel setEntity:entity];//传入参数,方法自己在类里面写
    [self.navigationController pushViewController:childrenChannel animated:YES];//推入新界面

类似的操作也可以方便程序的快速编写,这里以后肯定也有争论,如同.net中使用不使用用户控件,但是对新手而言可以快速建立程序,也可以避免一些错误。而且比较直观。但是还是要弄清楚原理,这里推荐宝玉写的文章:基于Xcode4开发第一个iPhone程序:“Hello World” 第二个iPhone应用程序:“Say Hello” ,里面有很好的简介。

最后,关于里面的一些小技巧,总结放到最好,大家可能对这些更感兴趣,呵呵

一、改变UINavigationBar的背景:

@implementation UINavigationBar(CustomImage)

-(void)drawRect:(CGRect)rect
{
    UIImage *backgroundImage=[UIImage imageNamed:@"Background.png"];
    [backgroundImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end

切记放到主delegate的后部,不要放置在类里面。

二、改变UINavigation标题为图片:

    //设置标题Image
    
    UIImageView *titleView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
    [titleView setImage:[UIImage imageNamed:@"IndexLogo.png"]];
    self.navigationItem.titleView=titleView;

三、日期时间的转换(这个我想吐槽,比起.net,这个太麻烦了):

    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
    [dateFormatter setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZ"];
    
    NSDate *date=[dateFormatter dateFromString:[self getStringByTag:@"pubDate" Index:[indexPath row]]];
    
    
    NSDateFormatter *dateToStringFormatter=[[NSDateFormatter alloc] init];
    [dateToStringFormatter setDateFormat:@"发布时间:yyyy-MM-dd HH:MM"];
    NSString *nsDate=[dateToStringFormatter stringFromDate:date];
    
  

最后希望大家多看看Xcode的帮助文档,虽然是英文的。例如现在提交程序,可以直接通过Xcode4进行,不需要单独使用Application Loader提交。

一般审核会在一周内完成,至于审核的问题大家看看apple的审核文档。在这里,app store是不能提交beta版本的,我在这里犯错了。

等待0.2的审核通过……

阅读博客园从0.1到0.2的升级笔记_第10张图片

阅读博客园 iphone应用程序(非官方)

app stroe 地址:
http://itunes.apple.com/cn/app/id454973243?mt=8

你可能感兴趣的:(阅读博客园从0.1到0.2的升级笔记)