转载:http://wangjun.easymorse.com/?p=1308
http://www.alexc.me/uiscrollview-and-uidatepicker/153/
我们知道当多个视图进行叠加的时候,touch事件是作用到最上面的视图上,但是如果父视图是UIScrollView,如果默认,可能touch子视图会造成UIScrollView的滚动。
UIScrollView滚动的原因,可以看UIScrollView 原理。
我在这里简单的描述一下,UIScrollView的工作原理,当手指touch的时候,UIScrollView会拦截Event,会等待一段时间,在这段时间内,如果没有手指没有移动,当时间结束时,UIScrollView会发送tracking events到子视图上。在时间结束前,手指发生了移动,那么UIScrollView就会进行移动,从而取笑发送tracking。
那么,UIScrollView的子类想要接受touch事件,就是用户点击UIScrollView上的视图时,要先处理视图上的touch,而不发生滚动。这时候就需要UIScrollView的子类重载touchesShouldBegin:withEvent:inContentView: ,从而决定自己是否接受子视图中的touch事件。
上面都是理论的知识,下面看一个简单的例子:
外面红色是一个UIScrollView,黄色是在UIScrollView上添加的UIView。最后的效果是,当在黄色区域内touch时,touch事件会作用到UIView上,当touch红色区域时,整个视图上下滚动。下面是实现的过程。
一、创建工程,然后创建myScrollView,并且myScrollView继承自UIScrollView。
#import
@interface myScrollView : UIScrollView {
}
@end
具体的实现:
#import “myScrollView.h”
#import “MyView.h”
@implementation myScrollView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setBackgroundColor:[UIColor redColor]];
MyView *myView=[[MyView alloc] initWithFrame:CGRectMake(1, 3, 100, 200)];
[...]

继续阅读..

admin on August 29th, 2011

高品质的游戏赚钱最快,竞争也最激烈
开发平台应用:国内典型的属淘宝开发平台,数百个API接口 发挥你的想象力 开发针对店家的收费APP ; 针对买家的应用内购买APP
企业APP:为企业营销和效率带来价值的APP。
工具类APP :通过内部嵌入广告来收益。

继续阅读..

admin on August 27th, 2011

1.掌握object_c基础
2.多操练 多小试牛刀 小项目 有了灵感不要让它跑掉
3.订阅大量国内外牛人blog 掌握牛人动态 他山之石 可以攻玉也。
4.阅读开源项目 吸收人类优秀的研究成果
5.攻破Core animation 和 Quartz 2D ,你就无敌了 。 界面可以随意定制 , 人类已经无法阻止你的创意了
6.多参加一些业内交流 研讨会,放眼世界 , 技术和商业结合才有价值奥!

继续阅读..

admin on August 27th, 2011

面向网络的移动app构架:
HTTP + JSON 轻量级接口
本地Sqlite DB -》 DB Model
MVC 模式构建界面UI和控制器
典型的流程:
1. Mobile Device 发送HTTP 请求
2. Server 响应 JSON 数据包
3. Mobile App Client 解析包文 生产JSON对象,进一步拆分成DB Model对象。
4. 控制器对象更新UI界面

继续阅读..

admin on August 27th, 2011

1.自动化理念:通过代码自动化工具生产sqlite DB Model,DAO 访问对象。
2.图像缓存:web图像本地缓存,使用http header modify 字段判断是否有更新图像
3.HTTP 数据使用GZIP压缩,减少HTTP请求次数
4.静态数据本地缓存
5.全局数据统一管理
6.线程模型:1)启用新线程后台加载网络数据 主线程更新UI 2)全局队列异步请求网络数据
7.使用KVO模型处理全局换肤
8.使用crash tool 管理异常日志

继续阅读..

admin on August 27th, 2011

mobile app除了提供有价值的功能外 ,还需要特别注意以下方面
稳定优先:经常crash的应用不是好应用。
性能第二:快速响应用户,流畅的体验
个性化:提供换肤 字体颜色等设置选择 满足geek用户喜欢玩应用的心理。
与用户对话:尊重用户 提供应用内反馈渠道

继续阅读..

admin on August 27th, 2011

如何构建一款新的app,整个开发过程大致需要一下阶段
1.用户研究,定义应用:分析用户使用习惯 期望 问题 为应用设计提供依据,也能发现新的商业机会和提供创新的解决方案。
用户行为分析
用户访谈
竞品分析:便于发现最佳实践 大家都遵守的规则你不妨也先遵守!
flurry分析
2. 应用概念原型开发: 概念性的应用草图 导航关系
3. 用户界面设计
交互界面设计
可用性测试
4. 视觉设计
吸引用户 构建愉悦的使用体验
5. 品牌设计:独特 个性的品牌印象
6. 国际化:你的应用是世界的

继续阅读..

http://tech2ipo.com/2011/08/app-next-internet/
自Facebook、Twitter、iPhone&Appstore,互联网已经彻底改变了,新的时代已经到来。
Facebook,Twitter的伟大之处在于,它们第一次真正把人与人、人与事连接起来,而iPhone和Appstore的伟大之处则是使这种连接随时随地。互联网从来没有像现在这样充满活力,整个互联网都会得益于此,整个互联网都应感谢它们。
互联网发展逻辑:
简单的信息呈现,无数的断点──>
全民织网,人与人、人与事完全连接──>
加固这种连接,更高效、更有价值的互联网,这是一个应用与智能化的时代。
在这个新时代里,产品特质也已经发生了巨变。
社交化(Socialize)
Lifestream,Connectting
手机优先(Mobile First)
成长 = 机会 ; 限制 = 专注 ; 潜力 = 创新 。
关键性小工具(Key Widget)
突出其工具性和专门化
请从以下链接下载《迎接应用与智能化时代──更有用 、易用、高效的下一代互联网》PPT完整版本:
http://www.slideshare.net/tech2ipo/ss-8954259/download

继续阅读..

admin on August 22nd, 2011

@implementation TTNavigatorWindow
@synthesize viewToObserve;
@synthesize controllerThatObserves;
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake && [TTNavigator navigator].supportsShakeToReload) {
[[TTNavigator navigator] reload];
}
}
- (id)initWithViewToObserver:(UIView *)view andDelegate:(id)delegate {
if(self == [super init]) {
self.viewToObserve = view;
self.controllerThatObserves [...]

继续阅读..

admin on August 22nd, 2011

http://stackoverflow.com/questions/2536311/iphonehow-to-find-the-control-interaction-under-touch
I have a UILabel control in a view. I want to detect touch event occurred when this label touched
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint point = [[touches anyObject] locationInView:label];
if([label hitTest:point withEvent:nil]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.mywebsite.com"]];
} [...]

继续阅读..