写在前面
在网上看到很多类似的iOS开源库定期分享类文章,觉得非常实用,其实,我自己平时在开发中也不时看到有很不错的资源,但是经常是没有用到就没记录下来,后来想用的时候就可能想不起来找不到了,因此现在也用这种形式记下来方便自己查找,同时也分享给大家。
在网上看到很多类似的iOS开源库定期分享类文章,觉得非常实用,其实,我自己平时在开发中也不时看到有很不错的资源,但是经常是没有用到就没记录下来,后来想用的时候就可能想不起来找不到了,因此现在也用这种形式记下来方便自己查找,同时也分享给大家。
使用MPVolumeView时 system volume progress view 则不会出现, 不过如果有时想同时出现自己定制的volume bar和 system volume progress view时,这时就不能使用MPVolumeView了,需要自己使用UISlider自定义UI和关联逻辑进行实现。
所有frame的高度和宽度应该通过superview的bounds计算。
xib中的view无法设置auto mask的必须通过代码设,不设定的话有时可以自动适应,但是有时会出现有部分黑屏的情况。
两边都不设置mask则为居中显示。
以下两方法为rotate是自动调用,如果该viewController没有navigationController时,以下两方法可能不被调用,需要自己加入通知中心。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
调用此方法时superview.bounds已经改变
UIImage *textFieldBgImage = [[UIImage imageNamed:@"textfield_bg.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:5];
[self.textField setBackground:textFieldBgImage];
最近项目中用到的接口是.net写的,传过来的日期格式是 2013-04-10T10:36:48.787359+08:00 , 这么一大串想解析成NSDate格式还真不是一件容易的事,幸好已经有人把转换类写出来了。
从第一篇文章我们知道了如何通过sencha命令创建Sencha Touch项目,而创建的项目里面已经包含了不少文件,如要开始写代码,我们有必要先了解所创建项目的文件结构及代码。
Sencha Touch有自己的类定义方式,我们先来看个例子:
Ext.define('Animal', {
config: {
name: null
},
constructor: function(config) {
this.initConfig(config);
},
speak: function() {
alert('grunt');
}
});
上面我们简单地定义了一个Animal类,只有一个name属性和一个方法speak();