1. 新建一个view based的项目

2. 在info.plist中增加一项:

<key>UIInterfaceOrientation</key>

<string>UIInterfaceOrientationLandscapeRight</string>

3. View- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    // Return YES for supported orientations

    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);

}

4. 在interface builder中,点选窗口右上角的旋转图标,把窗口视图转成水平的。

做完第二步,预览程序状态栏已经是横屏的了,不过,坐标还不是。第三步的代码加上就好了。

Posted in iphone开发 at 04月 14th, 2009. No Comments.
在shell中利用 launchctl这个命令就可以了,不用装任何其他软件。
 
(来自: http://www.iu1u.com )
开关 vsftpd  可以用如下命令:
launchctl load /System/Library/LaunchDaemons/com.bigboss.vsftpd.Startup.plist
launchctl unload /System/Library/LaunchDaemons/com.bigboss.vsftpd.Startup.plist
开关ssh服务可以用如下命令:
launchctl load /Library/LaunchDaemons/com.openssh.sshd.plist
launchctl unload /Library/LaunchDaemons/com.openssh.sshd.plist
不过话说回来,在iphone上用小键盘打这么一串,大小写符号俱全的命令,挺累人的呢。
 
Posted in iphone开发 at 03月 14th, 2009. 1 Comment.

iphone中,如何用NSLog打印一个结构体的信息

iu1u.com原创,欢迎转载,作者信息请保留

iphone开发中,会涉及到很多结构体,比如CGAffineTransform CGPoint等等。很多时候,我们需要把他们得值打印出来,以便跟踪调试。一个一个成员得打印出来,固然可以,但是太影响效率了。试试NSString得强大功能把,Iphone sdk中带了很多NSString相关得函数,可以把很多常用得结构体,直接格式化为字符串,比如NSStringFromCGPoint,NSStringFromCGAffineTransfrom等等。

然后用 NSLog(@“%@”, NSStringFromCGAffineTransfrom(transform)); 打印即可。

Posted in iphone开发 at 03月 8th, 2009. 4 Comments.

如何处理单点touch

单点touch 基本上和各种编程里鼠标事件得处理差不多。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

- (void) touchesEnd: (NSSet *) touches withEvent:(UIEvent *) event
搞定这三个类似mousedown,mousemove,mouseup得东西就可以了。
可以通过如下示例代码操作:
UITouch *touch= [[event allTouches] anyObject];
…你的代码
如何处理多点touch(Multitouch)
还是处理上面几个事件。在每一个事件里,可以通过如下示例代码操作
NSSet *allTouches = [event allTouches];
if ([allTouches count]==2){
    UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
    UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1];
    …你的代码
}
其中allTouches得count属性表示当前按下了几个触点,这里以最常用得两个触点为例,实际上理论上n个触点都可以,只要你手指头摆得下。
代码里有一行,NSSet *allTouches = [event allTouches]; 我们通过他获取到当前所有触点得信息,但是我们注意到touch事件里得第一个参数touches,他们有什么区别呢。当一个手指头不动得时候,只动另一个指头,这时,通过event allTouches可以获得所有得触点,而事件参数里得touches只能获得当前活动得那个触点信息。
(iu1u.com原创,欢迎转载,恳请注明来源)
怎么处理类似双击得操作
双击操作也是用的比较多得操作,可以通过touch对象得tapCount属性获取tap得次数,([touch tapCount]==2),就表示按了两下。
Over!
Posted in iphone开发 at 03月 5th, 2009. 1 Comment.

答案是官方sdk还不支持通过api设置iphone壁纸,toolchain当然可以,把你得图片文件写入/var/mobile/Library/LockBackground.jpg 即可。

Posted in iphone开发 at 03月 5th, 2009. No Comments.
 作分析为设计者来说,我们在很多方面都被Apple影响着,无论是其优秀的操作系统、时尚前卫的消费产品,还是他们在Web/应用设计上的引导趋势。从 Apple的产品和线上网站可以看出,Apple始终关注用户体验和可用性多一些。对于Apple.com来说,设计上注重可用性是非常重要的,它必须给用户留下一个好的印象,基于此,用户会更加喜欢购买Apple的产品,网站的可用性很大程度上反应了其产品的人性化操作。

从Apple.com可以学到很多知识,所以我用这个网站作为一个个案,研究一下Web设计过程中需要注意的一些可用性方面的知识。

1. 流畅实用的内容导航和菜单

主菜单(Main Menu)- Apple的菜单应该是最值得学习和效仿的设计了。你可能会问,这样如此简单平常的导航为什么会强大?首先,就是其设计的一致性,这个主菜单的整个页面中的定位清晰统一,是避免困扰用户操作的最直观的表现方式。

此外,这个菜单也使用了非常简单的鼠标hover事件,但这些表现已经足够了。

JavaScript Mac 菜单:这个名声在外的 Mac menu 是设计最简洁、组织最紧凑的导航之一,是在有效的特定空间内最好的内容组织方式。相比合理的内容组织更重要的就是操作的便利了,尤其响应鼠标的labels更是游刃有余。

侧边栏菜单:侧边栏导航能给人深刻的印象,可用性强。这个小巧的折叠层可以满足有限区域内容容纳更多链接内容的需要,即便有新的添加进来也不会对布局产生影响。

Gallery 导航: 除了基于导航设计的内容组织外,图片的组织也同样是极其重要的。Apple.com实现了一个非常简单的图片展示功能,除了使用了缩略图菜单外,还使用了 lightbox 的表现效果,简单简洁的设计,却让用户的操作表现的流畅完美。

在每一个 lightbox gallery中,所有的图片都是组织在 lightbox下,我们不必再把时间花费在“上一幅、下一幅”的点击操作上了。

iPhone 特色菜单:又一个简洁但功能强大的菜单, iPhone 的内容是一个基于多个列表的样式化导航。

Bread Crumbs导航:面包屑导航告诉用户他当前的操作位于整个网站的具体位置。Apple在每一页面的底部都提供了这样一个位置导航功能,对于希望无障碍地快速网站的用户来说非常有用。

Site Map - 就Web的可用性来说,网站地图是一个更不起眼的功能,但它在应用中却必不可少。 Apple.com  有一个位于页脚的网站地图,帮助用户更方便地找到需要的页面。

 

2. 整齐流畅的网格布局

 

任何网站设计(或者说任何一个层设计)都是从最简单的网格开始的,网格是任何层和内容的基础。Apple 在每一个页面,统一使用整齐的网格布局设计,给用户一个愉快的体验。

虽然Apple在每个页面都使用了网格布局,但是页面间的布局却又各不相同,这就需要设计的灵活性和创新意识。与此同时,保持框架统一的网格区域,也能给用户视觉上的愉悦。

3. 统一稳重的色调,高质量的图片

除流畅的布局设计外,页面的色调也在很大程度上反映了网站的可用性设计。色调方案是一个网站表达感觉和视觉最直观的因素,起决定性作用。

对比度/色彩设计:Apple使用一个完美的色彩设计,表达出一种和谐专业的感觉。平滑的对比度增强了内容的可辨识度。非常合理的网站饱和度提高了易读性。此外,相比基本文字,链接文字的不同色彩也是为内容的可读性增色不少。

图片:和色调紧密相关的是,图像的质量也是一个非常重要的方面。Apple.com在内容中混合了很多的图像,这些图像都是高质量的,在网站的专业性方面充当了一个相当重要的角色,好的图像需要在细节处下足功夫。

空隙:合理的空隙应用是完美页面布局设计必不可少的成分。适当的应用可以避免混乱的布局,使布局看起来更加清晰。Margins、行间距, 字间距的科学人性化设计都会增强内容的可读性,减少视觉上的阅读疲劳。

4. 流畅可扫描的内容组织

 

内容为王,是网站存在的根本。内容的组织形式会直接影响到用户对内容的反映。尤其是一个像Apple.com这样的网站,充满大量的内容,是否可以扫描就成了非常重要的指标。

间隔:间隔和文字大小在可读性方面是同样重要的指标。首选,行间距对文本的可读性尤其重要,如果太小,读者阅读会非常的吃力;如果太大,就会显得太多独立,丧失相关性。Apple.com使用一个行高的数值解决了这个问题。

规则的图片布局:不像很多文章型网站,Apple使用透明背景的图片,在图片和环绕文字之间合理地设置间隙。

可扫描的Headers/Text:标题和文本的组织除了方便阅读之外,还能更容易地实现内容的扫描。

高亮的关键字和不同字体的使用都是使得文本更容易扫描的最好方式,当然,行高也是同样重要。

 

5. 快速的加载时间

加载时间的长短决定着用户是否会离开网站,如果网站的加载过慢,那么用户将会失去等待的耐心,不再继续浏览网站。

简洁和良好的代码风格可以提供加载效率。最小化加载时间的方法很多,包括压缩图片 、删除不必要的内容、使用加载时间测试工具等等。这是一个非常大的话题, 类似的文章 也是非常多。

6. 搜索功能

 

网站的搜索功能不可低估,一个具备可用性的强大搜索引擎是任何网站必须的元素。绝大多少的网站只使用一个简单的搜索条敷衍了事。而对于 Apple.com,却在布局和功能上都增强了搜索功能,网站使用JavaScript技术实现了搜索框自动显示下拉相关关键字的方法,引导用户显示搜索 结果,可见其人性化设计已是渗透到了每一个细节。

Apple.com把搜索条放置在了顶部导航菜单的右侧,而且整站页面一致显示。

7. 细节

对于设计来说,考验的就是细节的处理,细节做到了,那么这个产品就会得到用户的肯定,当然,Apple.com也是这样做的,这也是为什么会表现的如此专业的原因。

链接:在内容中插入链接文字时,把这些链接作高亮处理是非常必要的,而且,对于内容和列表中的链接,还是作了细微的区别处理。

隔离:在列表中,相似的元素、对象间作必要的分离是非常必要的,有时,一个简单的1px线条会起到画龙点睛的作用。

回到顶部:回到顶部链接是一个常见的应用,不容忽视。在页面过长时,方便用户返回页面顶部进行操作。

语言选择:如果你的产品客户是不同国家不同地区的人,那么如果没有准确的语种供用户选择的话就太糟糕了。Apple做到了,提供各种语言版本供用户选择使用,从而扩大了产品的市场范围。

好了,以上就是基于Apple.com对Web设计过程中需要注意的可用性方面的一些简介。如果你也有你的观点,那么为何不分享出来呢?

英文原文spoonfeddesign

 

Posted in iphone开发 at 03月 3rd, 2009. No Comments.
1. 在移动开通GPRS,各地资费不一样
2. 把一下设置代码添加到 /private/var/root/Library/Preferences/SystemConfiguration/preferences.plist 文件中。<key>Proxies</key>
<dict>
<key>HTTPEnable</key>
<integer>1</integer>
<key>HTTPPort</key>
<integer>80</integer>
<key>HTTPProxy</key>
<string>10.0.0.172</string>
<key>HTTPProxyAuthenticated</key>
<integer>0</integer>
<key>HTTPProxyType</key>
<integer>1</integer>
<key>HTTPSEnable</key>
<integer>1</integer>
<key>HTTPSPort</key>
<integer>80</integer>
<key>HTTPSProxy</key>
<string>10.0.0.172</string>
<key>ProxyAutoConfigEnable</key>
<integer>0</integer>
</dict>

3. 记得在通用/设置/网络里,把开通数据漫游的开关打开。我最近上不去,今天发现原来一直是这个开关没有打开,晕死。打开这个开关,就会看到左上角有一个E的指示符。

4. 如果装了BossPref,请确认,没有在BossPref里面把Edge给禁用了。

That’s all.Enjoy!

More: http://gouyou.de/blog/6737

Posted in iphone开发 at 01月 16th, 2009. No Comments.

话说把iphone程序放到真机里调试,对于第一次,还真tmd麻烦。又是key,id,又是Provisioning Profiles的。在模拟器里调试还是很简单的。点一下Build and Go就ok了。

1. 获取Certificate,一次性工作。先在苹果的证书管理里面,生成一个证书文件,然后到http://developer.apple.com/iphone/manage/certificates/team/index.action这个页面里,添加一下刚才生成的证书,一分钟以后,会得到一个.cer文件的下载。双击它,就可以把certificate加入到keychain里面了。

2. 注册设备,很简单的。通过xcode的organization或者itunes都可以查看你的机器的udid.在上面那个页面里关联一下即可。

3. 生成appid,app id也要通过上面的页面生成,输入一个应用程序名,就会生成一个10位数的appid,bundle id最好是反向域名的形式,为了多个程序都能调试,可以写*.

4. 生成Provisioning Profiles。貌似,xcode主要也就是认这个东东,所以这个东西最重要,这个文件是根据app id,machine id,certificate,就是上面生成的那些东西生成的。上面的页面上有生成工具,一分钟之内生成完毕,下载下来,然后拖到organization或者直接拖到xcode上面即可。

5. 现在,把运行环境选成device,应该就可以运行了。8过,我在网上下载的31day的一个程序,运行不了,貌似总是提示info.plist有什么毛病。但是我自己昨天做的时钟hello world project,直接就运行在真机上了。

本文首发: http://www.iu1u.com 转载请注明
上面介绍的,这个页面里有各个步骤以及详细的视频解说,不过是鸟语的,可以参考http://developer.apple.com/iphone/videos/popupappids.action

Posted in iphone开发 at 12月 28th, 2008. No Comments.

介绍一点点object c的基本语法:

都说object c的语法是比较火星的,不掌握几个基本语法,一个hello world就可以把人看晕掉。偶就晕过的说。
掌握了这几个,看hello world应该绰绰有余了.

- (void) functionname… 表示对象的方法名

+ (void) functionname…表示类方法名,或者说静态方法名,类似与java中的static
没见过的Cocoa类,可以到http://developer.apple.com/documentation/Cocoa 查询,对于初学者,知根知底的查一下一个类的家底是很好的积累。
多个参数的调用方法比较火星一点:

-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName;

具体可以参考CocoaChina的这篇文章 http://www.cocoachina.com/index.php/archives/cocoachina_122.html

 

Posted in iphone开发 at 12月 28th, 2008. No Comments.

参考:31Day的Day1: http://i.cniphone.com/space-7-do-blog-id-112.html
今天开始写iphone程序,看的31天iphone开发实例。第一个程序调通了。两个体会:

* 不要看中文版的,原版的表达很浅显,不需要多好的英语功底,中文版的反而词不达意,影响理解。不过原网站:appsamuck.com貌似被河蟹了(国内用户可以在这里查看:http://i.cniphone.com/space-7-do-blog-view-me.html
* 学会了NSTimer的用法,使用NSTimer时,那一堆参数必须全了,才好使,否则可能提示NSTimer may not respond to …
* 把倒计时改成了时钟,嘿嘿
第一天,继续加油

Posted in iphone开发 at 12月 28th, 2008. No Comments.