刚刚将新的阅读博客园提交apple,等待审核,主要解决了以下问题:
1.文本阅读模式字号调整到适合手机阅读。
2.美工细化,界面更美观。
3.程序结构调整,整体更流畅。
先看看0.2的界面吧!
哎,说句题外话,看到我的手机信号没?都是台风惹的祸,把安装在家里的信号放大器刮掉了,报修到今天还没有弄好!
好了,言归正传,继续说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版的界面做个对比吧!
程序结构的调整,先贴上我的程序文件结构图
原来使用Navigation Controller是在RootViewController里面,造成了进入单个频道页面时返回按钮变成了没有向右箭头的那种(如0.1版界面图2),而且切换效果不一致,是消失而不是滑出。
学习iphone开发这段时间买到的书,看到的网上的文章都是Xcode3.X的,当使用Xcode4时问题就会出来了,变化还是蛮大的。所以0.1版就在结构上变成个混合体。
其实对于Xcode4,可以理解成从VS2003到VS2005的改变,首先IB被整合到了一起,所以不用来回切换。另外很多功能确实可以不用代码而是在界面完成。在0.2版本中,我的改变就是注释掉代码,在界面完成工作。这些工作依旧可以通过代码来实现,和.net的一样的,在这里我就不说代码了,到网上一搜很多的,这里说说直接在界面完成。
看看我的MainWindow.xib结构和主要的属性设置
如果所示,在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的审核通过……
阅读博客园 iphone应用程序(非官方)
app stroe 地址:
http://itunes.apple.com/cn/app/id454973243?mt=8