首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

学习ios【2】Objective-C 数字和字符串

一 数字 1.使用Foundation.h可以直接导入所有的头文件。 在XCode中,想查看某个方法帮助,可以将光标放在方法上,按住option键同时单击即可。 官方文档: https://developer.apple.com/library/mac/navigation/ 2.数字对象 objective-c有几种基本数据类型,int float long等,不过有些时候比如NSArray需要使用数字对象,而前面几种基本数据类型并不是对象,此时我们可以使用NSNumber. 对于每种基本数据类型,类方法都可以为它创建一个NSNumber对象,并设定值。这些方法都是以numberWith开头,如numberWithInteger等。也可以使用实例方法将以前创建的NSNuber对象设置为指定的值,这些方法是以initWith开头,如initWithFloat。 NSNumber类有很多方法,几种常见用法如下: numberWith…:用初始值创建NSNumber对象,例如:numberWithInt:100; integerValue:获取NSNumber对象的值,其它如charValue,floatValue等; isEqualToNumber:比较两个NSNumber对象的数值是否相等,返回一个BOOL值。 compare:比较两个NSNumber对象数值的大小。返回结果有NSOrderedAscending,NSOrderedSame和NSOrderedDescending。 最近objective-c语言扩展允许通过@表达式创建数字对象。如果@之后的值是一个表达式或者变量需要使用括号。 #import <Foundation/Foundation.h> int main(int argc,const char * argv[]) { @autoreleasepool { NSNumber *myNumber,*floatNumber,*intNumber; intNumber=[NSNumber numberWithInt:100]; NSLog(@"%li",[intNumber integerValue]);//100 floatNumber=[NSNumber numberWithFloat:100.00]; NSLog(@"%f",[floatNumber floatValue]);//100.000000 myNumber=[NSNumber numberWithChar:'A']; NSLog(@"%c",[myNumber charValue]);//A //判断两个数字是否相等 if([intNumber isEqualToNumber:floatNumber]==YES) { NSLog(@"int number is equal to float number");//√ } else{ NSLog(@"int number is not equal to float number"); } //比较两个数字大小 if([intNumber compare:myNumber]==NSOrderedAscending) { NSLog(@"int number is less than mynumber"); } else{ NSLog(@"int number is more than mynumber");//√ } //@语法 intNumber=@200; NSLog(@"%li",[intNumber integerValue]);//200 } return 0; } 二 字符串 1.常量字符串对象 在字符串开头放一个@符号,就可以创建一个字符串常量对象。例如:@"Hello World!" 2.decription NSLog(@"%@",a)中,%@既可以显示NSString对象,也可以显示其它对象。通过覆盖description方法,可以自定义对象的显示格式。 Complex.h #import <Foundation/Foundation.h> @interface Complex : NSObject @property int real,imaginary; -(void)setReal:(int)r andImaginary:(int)m; @end Complex.m #import "Complex.h" @implementation Complex @synthesize real,imaginary; -(void)setReal:(int)r andImaginary:(int)m { self.real=r; self.imaginary=m; } //重写description,自定义输出格式 -(NSString *)description { return [NSString stringWithFormat:@"%i + %ii",self.real,self.imaginary]; } @end main.m #import <Foundation/Foundation.h> #import "Complex15.h" int main(int argc,const char * argv[]) { @autoreleasepool { Complex15 *c=[[Complex15 alloc] init]; [c setReal:1 andImaginary:2]; NSLog(@"%@",c);//由<Complex15: 0x10010ffa0> 变为 1 + 2i } return 0; } 2.不可变字符串NSString 注意:不可变字符串对象表明它所引用的字符串对象的字符不可改变,但是可以重新为它们指定为其它的不可变字符串对象。 NSString常用的方法: length:获取字符串长度; NSString stringWithString:复制字符串内容; stringByAppendingString:连接两个字符串; isEqualToString:比较两个字符串是否相等; compare:字符串比较,常用于排序。比较结果为NSOrderedAssending,NSOrderedSame或NSOrderedDescending。 uppercaseString:字符串转换为大写; lowercaseString:字符串转换为小写。 int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1=@"This is String A"; NSString *str2=@"This is String B"; NSString *result; NSComparisonResult compareResult; // 字符串长度 NSLog(@"length of str1 is %lu",[str1 length]);//length of str1 is 16 //复制字符串 result=[NSString stringWithString:str1]; NSLog(@"Copy str1,result is: %@",result);//Copy str1,result is: This is String A //追加字符串 str2=[str1 stringByAppendingString:str2]; NSLog(@"str1 append str2 is:%@",str2);//str1 append str2 is:This is String AThis is String B //字符串是否相等 if([str1 isEqualToString:result]){ NSLog(@"str1==result");//√ } else{ NSLog(@"str!=str2"); } //比较字符串 compareResult=[str1 compare:str2]; if(compareResult==NSOrderedAscending){ NSLog(@"str1<str2");//√ }else if(compareResult==NSOrderedSame){ NSLog(@"str1=str2"); }else{ NSLog(@"str1>str2"); } //大小写转换 result=[str1 uppercaseString]; NSLog(@"upper case:%@",result);//upper case:THIS IS STRING A result=[str1 lowercaseString]; NSLog(@"lower case:%@",result);//lower case:this is string a } return 0; } 子字符串操作: substringToIndex:返回一个子串,截取从开头到指定索引数的字符,但是不包括这个字符。 substringFromIndex:返回一个子串,截取从指定位置到字符串结尾的字符。 substringWithRange:返回指定范围的字符,参数是NSRange类型。 rangeOfString:在字符串中查找子串,返回结果是NSRange类型,它是一个结构变量,不是对象变量。返回结果range.location表示子串起始位置,range.length表示子串长度。如果找不到指定子串,则location为NSNotFound。 int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1=@"This is String A"; NSString *result; NSRange range; //从开头取前N个字符 result=[str1 substringToIndex:4]; NSLog(@"前4个字符:%@",result);//前4个字符:This //取第N个字符到结尾 result=[str1 substringFromIndex:8]; NSLog(@"后8个字符:%@",result);//后8个字符:String A //提取第8到13个字符 result=[[str1 substringFromIndex:8] substringToIndex:6]; NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String //另一种实现方式 result=[str1 substringWithRange:NSMakeRange(8,6)]; NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String //查找子串 range=[str1 rangeOfString:@"String"]; NSLog(@"String子串位置%lu,长度是%lu",range.location,range.length);//String子串位置8,长度是6 //查找不存在的子串 range=[str1 rangeOfString:@"StringA"]; if(range.location==NSNotFound){ NSLog(@"未找到子串StringA");//√ }else{ NSLog(@"子串StringA位置为%lu",range.location); } } } 3.可变字符串NSMutableString NSMutalbleString是NSString的子类,用来创建可以更改字符的字符串对象。 NSMutableString常用方法: insertString:atIndex :在指定位置插入字符串; appendString: 在字符串结尾插入字符串; deleteCharactersInRange:删除字符串中指定数目的字符。 setString:直接设置可变字符串对象的内容; int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str=@"This is String A"; NSMutableString *mstr; NSRange substr; mstr=[NSMutableString stringWithString:str]; NSLog(@"%@",mstr);//This is String A //插入字符 [mstr insertString:@" mutable" atIndex:7]; NSLog(@"%@",mstr);//This is mutable String A //追加字符 [mstr appendString:@" and String B"]; NSLog(@"%@",mstr);//This is mutable String A and String B //删除子串 [mstr deleteCharactersInRange:NSMakeRange(16, 8)]; NSLog(@"%@",mstr);//This is mutable and String B //查找子串并删除 substr=[mstr rangeOfString:@"and String B"]; if(substr.location!=NSNotFound){ [mstr deleteCharactersInRange:substr]; NSLog(@"%@",mstr);//This is mutable } //直接设置可变字符串内容 [mstr setString:@"This is String."]; NSLog(@"%@",mstr);//This is String. //替换子串 [mstr replaceCharactersInRange:NSMakeRange(7, 1) withString:@" mutable "]; NSLog(@"%@",mstr);//This is mutable String. 本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/p/5467215.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Hadoop Hive概念学习系列之HiveQL编译基础(十)

由客户端提交的HiveQL语句将最终被转换为一个或多个MapReduce任务并提交由Hadoop执行。不包含聚合和连接的简单SELECT语句可以使用一个单独的只包含Map阶段的任务实现。使用GROUP BY子句的聚合可以使用一个独立的MapReduce任务实现。包含大量多表连接的复杂查询需要依靠多个MapReduce任务的顺序执行来实现。 HiveQL编译器的操作分为好几个阶段。 在第一个阶段中,查询语句被解析并转化成抽象的语法树。随后语法树将被传给语义分析器,在这一过程中,通过使用元数据存储中的信息来判别列名和数据类型。 语义分析器将它们转化并生成一种内部的表达方式,然后传递给逻辑计划生成器,在这里将生成一颗逻辑操作树。在逻辑计划经过数次的传递和优化之后,它将被送往物理计划生成器。经过物理计划生成器和处理之后,将产生一张DAG(有向无环图)用以生成最终的MapReduce任务。 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6105080.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Spark Streaming概念学习系列之Spark Streaming 架构(二)

图 1 Spark Streaming 架构图 Spark Streaming组件介绍 Network Input Tracker 通 过 接 收 器 接 收 流 数 据 并将 流 数 据 映 射 为 输 入DStream。 Job Scheduler周期性地查询 DStream 图通过输入的流数据生成 Spark Job将 Spark Job 提交给 Job Manager 进行执行。 JobManager维护一个 Job 队列将队列中的 Job 提交到 Spark 进行执行。 通 过 图 1 可 以 看 到 D-Stream Lineage Graph 进 行 整 体 的 流 数 据 的 DAG 图 调度 Taskscheduler 负责具体的任务分发 Block tracker 进行块管理。在从节点如果是通过网络输入的流数据会将数据存储两份进行容错。 Input receiver 源源不断地接收输入流 Task execution 负责执行主节点分发的任务 Block manager 负责块管理。SparkStreaming 整体架构和 Spark 很相近很多思想是可以迁移理解的。 本文转自大数据躺过的坑博客园博客原文链接http://www.cnblogs.com/zlslch/p/5725358.html如需转载请自行联系原作者

优秀的个人博客,低调大师

Spark RDD概念学习系列之RDD的操作(七)

RDD的操作 RDD支持两种操作:转换和动作。 1)转换,即从现有的数据集创建一个新的数据集。 2)动作,即在数据集上进行计算后,返回一个值给Driver程序。 例如,map就是一种转换,它将数据集每一个元素都传递给函数,并返回一个新的分布式数据集表示结果。另一个方面,reduce是一种动作,通过一些函数将所有元素叠加起来,并将最终结果返回Driver(还有一个并行的reduceByKey,能返回一个分布式数据集)。 下图描述了从外部数据源创建RDD,经过多次转换,通过一个动作操作将结果写回外部存储系统的逻辑运行图。整个过程的计算都是在Worker中的Executor中运行。 图 1 RDD的创建、转换和动作的逻辑计算图 RDD的转换 RDD中的所有转换都是惰性的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这个设计让Spark更加有效率地运行。例如我们可以实现:通过map创建的一个新数据集,并在reduce中使用,最终只返回reduce的结果给Driver,而不是整个大的新数据集。图2描述了RDD在进行groupByRey时的内部RDD转换的实现逻辑图。图3描述了reduceByKey的实现逻辑图。 图2 RDD groupByKey的逻辑转换图 在groupByKey的操作中,会在MapPartitionsRDD做一次Shuffle,图2中设置的分片数量是3,因此ShuffledRDD会有3个分片,ShuffledRDD实际上仅仅是从上游的任务中读取Shuffle的结果,因此图的箭头是指向上游的MapPartitionsRDD的。关于Shuffle的实现实际上要比图中展示得复杂得多。reduceByKey和groupByKey的实现差不多,它在Shuffle完成之后,需要做一次reduce。 图3 RDD reduceByKey 的逻辑转换图 默认情况下,每一个转换过的RDD都会在它执行一个动作时被重新计算。不过也可以使用persist(或者cache)方法,在内存中持久化一个RDD。在这种情况下,Spark将会在集群中保存相关元素,下次查询这个RDD时能更快访问它。也支持在磁盘上持久化数据集,或在集群间复制数据集。 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5723751.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Spark RDD概念学习系列之RDD的转换(十)

RDD的转换 Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG。接下来以“Word Count”为例,详细描述这个DAG生成的实现过程。 Spark Scala版本的Word Count程序如下: 1 2 3 4 5 1 : <span style= "color: #ff0000;" ><strong>val file = spark.textFile( "hdfs://..." )</strong></span> 2 : <strong><span style= "color: #ff0000;" >val counts = file.flatMap(line => line.split( " " ))</span></strong> 3 : <strong><span style= "color: #ff0000;" > .map(word => (word, 1 ))</span></strong> 4 : <strong><span style= "color: #ff0000;" > .reduceByKey(_ + _)</span></strong> 5 :<strong><span style= "color: #ff0000;" > counts.saveAsTextFile( "hdfs://..." )</span></strong> file和counts都是RDD,其中file是从HDFS上读取文件并创建了RDD,而counts是在file的基础上通过flatMap、map和reduceByKey这三个RDD转换生成的。最后,counts调用了动作saveAsTextFile,用户的计算逻辑就从这里开始提交的集群进行计算。那么上面这5行代码的具体实现是什么呢? 1)行1:spark是org.apache.spark.SparkContext的实例,它是用户程序和Spark的交互接口。spark会负责连接到集群管理者,并根据用户设置或者系统默认设置来申请计算资源,完成RDD的创建等。 spark.textFile("hdfs://...")就完成了一个org.apache.spark.rdd.HadoopRDD的创建,并且完成了一次RDD的转换:通过map转换到一个org.apache.spark.rdd.MapPartitions-RDD。 也就是说,file实际上是一个MapPartitionsRDD,它保存了文件的所有行的数据内容。 2)行2:将file中的所有行的内容,以空格分隔为单词的列表,然后将这个按照行构成的单词列表合并为一个列表。最后,以每个单词为元素的列表被保存到MapPartitionsRDD。 3)行3:将第2步生成的MapPartitionsRDD再次经过map将每个单词word转为(word, 1)的元组。这些元组最终被放到一个MapPartitionsRDD中。 4)行4:首先会生成一个MapPartitionsRDD,起到map端combiner的作用;然后会生成一个ShuffledRDD,它从上一个RDD的输出读取数据,作为reducer的开始;最后,还会生成一个MapPartitionsRDD,起到reducer端reduce的作用。 5)行5:首先会生成一个MapPartitionsRDD,这个RDD会通过调用org.apache.spark.rdd.PairRDDFunctions#saveAsHadoopDataset向HDFS输出RDD的数据内容。最后,调用org.apache.spark.SparkContext#runJob向集群提交这个计算任务。 RDD之间的关系可以从两个维度来理解:一个是RDD是从哪些RDD转换而来,也就是RDD的parent RDD(s)是什么;还有就是依赖于parent RDD(s)的哪些Partition(s)。这个关系,就是RDD之间的依赖,org.apache.spark.Dependency。根据依赖于parent RDD(s)的Partitions的不同情况,Spark将这种依赖分为两种,一种是宽依赖,一种是窄依赖。 RDD的依赖关系(宽依赖和窄依赖) 如,假设,现在如下 所以, 比如,我这里是刚好是4台worker1、worker2、worker3、worker4。还有1台Master。 soga, 1 <span style= "color: #ff0000;" ><strong>val file = spark.textFile( "hdfs://..." )<br></strong></span> 1)行1:spark是org.apache.spark.SparkContext的实例,它是用户程序和Spark的交互接口。spark会负责连接到集群管理者,并根据用户设置或者系统默认设置来申请计算资源,完成RDD的创建等。 spark.textFile("hdfs://...")就完成了一个org.apache.spark.rdd.HadoopRDD的创建,并且完成了一次RDD的转换:通过map转换到一个org.apache.spark.rdd.MapPartitions-RDD。 也就是说,file实际上是一个MapPartitionsRDD,它保存了文件的所有行的数据内容。 想要成为高手,一定要多看源码,看上几十遍都太少了,包括看上10个版本的源码。无论是hadoop、还是spark。 1 <span style= "color: #ff0000;" ><strong>val counts = file.flatMap(line => line.split( " " ))</strong></span><br> 2 )<strong>行 2 </strong>:将file中的所有行的内容,以空格分隔为单词的列表,然后将这个按照行构成的单词列表合并为一个列表。最后,以每个单词为元素的列表被保存到<strong>MapPartitionsRDD</strong>。<br><br><br> 1 <span style= "color: #ff0000;" ><strong>.map(word => (word, 1 ))</strong></span><br> 3 )<strong>行 3 </strong>:将第 2 步生成的MapPartitionsRDD再次经过map将每个单词word转为(word, 1 )的元组。这些元组最终被放到一个<strong>MapPartitionsRDD</strong>中。 至此,windows本地,已经完成了。 下面是在网络里了。 注意啦! 分区是计算概念,分片是数据概念。 有4台worker,每台都在自己内存计算。 1 <strong>.reduceByKey(_ + _)</strong> 4)行4:首先会生成一个MapPartitionsRDD,起到map端combiner的作用;然后会生成一个ShuffledRDD,它从上一个RDD的输出读取数据,作为reducer的开始;最后,还会生成一个MapPartitionsRDD,起到reducer端reduce的作用。 总结: 第一个stage : HadoopRDD -> MapPartitionRDD -> MapPartitionsRDD -> MapPartitionsRDD -> MapPartitionsRDD 第二个stage : Stage shuffledRDD -> MapPartitionsRDD 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5723764.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--动画(Animation)效果源码分享--系列教程1

Genie View 介绍: 实现所谓的genie effect。即点击最小化或删除按钮,视图会被吸进某个地方。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=15&fromuid=15Animated Hovering Views 介绍:实现飘动视图(Hovering Views)的效果。Demo中,飘动的视图是一朵朵白云,可以自定义每朵白云的飘动速度和、文字和颜色等等。只支持ARC。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=16&fromuid=15AHEasing 介绍: 实现动画中的缓动函数(easing function)。Easing function就是让物体的运动过程遵循某类数学公式,即定好起点和终点,物体在这个移动过程中,按照某个线性或者非线性的速度来进行移动,这样会让物体的运动看起来更加真实、更加符合真实世界的物理规律。 AHEasing支持的移动模式包括:Linear,Quadratic,Cubic,Quartic,Quintic,Sine,Circular,Elastic,Back,Bounce。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=17&fromuid=15Wave Animation 介绍: 实现点击屏幕出现波纹效果。可以设置波纹的大小、波纹扩散的速度、波纹扩散的大小、持续时间等等参数。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=19&fromuid=15Core Animation Fun House 介绍: 利用Core Animation 框架实现各种各样动画效果。包括:图形变大变小、改变颜色、改变透明度等动画(implicit animations),倒影(reflection)、抖动、三角函数取消等等动画 http://ios.itmdc.com/forum.php?mod=viewthread&tid=20&fromuid=15FireBall 介绍: 实现小球在屏幕不停的来回反弹,反弹后有小球轨迹。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=21&fromuid=15PRTween 介绍: 实现某些Core Animation无法实现或很难实现的动画效果,比如物体弹跳(bounce)、给运动物体一个加速度、让运动物体逐渐停止等等动画效果。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=22&fromuid=15Dazzle 介绍:利用Core Animation、CAEmitterCell 以及 CAEmitterLayer在iOS5中实现各种粒子动画效果,包括雪花、火焰、烟雾、飘动的花瓣、爆炸等效果。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=23&fromuid=15Path去睡觉超炫特效 介绍: Path2.0 iOS应用中,用户有两种状态,分别是睡眠和唤醒状态。切换睡眠状态时,一个月亮会慢慢升起来,背景图案也会慢慢变化。唤醒之后,月亮慢慢消失。这份代码就是实现了这种超炫特效。需将模拟器的语言区域设置成中国。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=24&fromuid=15Full Screen Animations 介绍: 这个代码实现了两种比较酷的动画效果: 1. 程序启动画面(splash画面)到程序界面(root view controller)之间的过渡动画效果是翻书的效果。即开机画面停留一小段时间后,慢慢像翻书一样翻到程序主页面。 2. 第二个效果十分特殊,是当用户点击星星的按钮(收藏按钮)之后,按钮上的星星图标会慢慢坠落到tab bar上面。在星星坠落的过程,tab bar上其他的tab慢慢变暗,只留下图标是星星的tab。也就是让用户慢慢看到收藏的效果。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=25&fromuid=15 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/05/2803803.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--音频声效(Audio)效果源码分享--系列教程

AAC Audio Converter 介绍: 可以将任意格式的音频文件转码压缩成 AAC MPEG-4(m4a)格式。可以应用在需要传输声音文件的app中,这样可以将数据量大的声音文件(比如PCM)压缩成较小的AAC再进行传输。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=44&fromuid=15Groover 介绍: 制作各种节奏的鼓声音乐。制作过程如下:一共有三种鼓声(还包括一种类似沙槌的声音)。界面上出现3*16的格子,每一行对应一种乐器的声音,每一格表示击打一次。对这48个格子,随便点击选择(组合各种声音),然后拖动速度slider(控制节奏快慢),点击“start”按钮,就可以制作出意想不到的组合声音。具体制作音乐过程可以看视频。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=45&fromuid=15Sound Engine 介绍: 播放背景音乐的同时,还可以同时播放其他声效,可以同时分别控制背景音乐以及声效的音量大小。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=46&fromuid=15简易钢琴源码分享 介绍: 利用AudioToolbox实现一个简单的钢琴,可以奏出7个音阶的声音。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=47&fromuid=15音乐播放器源码分享 介绍: 用ios自带的AVAudio实现的音乐播放器。可以播放存放在电脑里面的音乐文件,可以调整声音音量。播放的时候界面会有下雪的效果。可以作为练习动画和音频播放的例子。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=48&fromuid=15Audio Streamer 介绍: 播放来自互联网的音频流/流媒体(Audio Streamer)。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=49&fromuid=15cocoa waveform 介绍:实现播放音乐同时显示波形图(waveform). http://ios.itmdc.com/forum.php?mod=viewthread&tid=83&fromuid=15TOM猫学说话demo 介绍: 实现汤米猫学说话的demo,即实现变声功能。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=84&fromuid=15lrc歌词同步显示 介绍: 实现一个简单的基于LRC的歌词同步显示功能,支持[time][time]XXXX格式的LRC文件 http://ios.itmdc.com/forum.php?mod=viewthread&tid=85&fromuid=15在线音频播放器 介绍: 一款带有圆形进度条的在线音频(流媒体)播放器。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=86&fromuid=15利用Audio Unit类 进行播放声音 介绍: 利用Audio Unit类进行简单的播放声音,这个类库可以进行更加强大的操作。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=87&fromuid=15Simple Audio Engine from cocos2d 介绍: cocos2d是一个很强大的类库,不仅包含了各种动画处理效果,也有声音处理效果。但是cocos2d毕竟太过庞大。如果我仅仅需要其中的声音处理类库,是不需要用到其他庞大复杂的代码的。现在,热心的开发者将其中的声音处理的代码SimpleAudioEngine从cocos2d提取出来,并且附上了一个demo例子,教你如何使用。如果你仅仅想在你的应用中播放一些声音或者背景音乐,那么,直接使用SimpleAudioEngine将十分方便。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=88&fromuid=15ObjectAL for iPhone 介绍: 实现各种声音效果,包括调整声音的大小(Volume)、音调(Pitch)、声像(Pan)、静音(Mute),还可以调整声音的淡入淡出效果,背景音乐混合(Audio track)效果。代码例子中还提供了一个飞机射击游戏,当射中目标之后,会发出声音。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=89&fromuid=15Sound Recorder 介绍: 实现录音功能。用户点击“Rec”按钮开始录音,点击“Stop”按钮之后停止录音,点击“Play”按钮之后回放录音。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=90&fromuid=15Audio Player Controller 介绍: 实现音乐播放器功能,可以播放mp3音乐。效果类似iPhone自带的音乐播放器应用。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=91&fromuid=15 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/04/2801944.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--列表(Table)效果源码分享--系列教程3

图片翻转动画效果 介绍: iPad版腾讯视频翻转显示影片详情动画,path里也用到这个动画,用户点击列表上面某张缩略图片,图片翻转变大之后显示详情。动画效果请看视频。http://ios.itmdc.com/thread-3180-1-1.html多级树形目录列表 介绍: 利用UITableView 显示多级树形目录。可以用于文件查看系统。http://ios.itmdc.com/thread-3181-1-1.htmlForm Validator 介绍: 实现填表单时候的有效性提示功能。提示用户本表单该填写什么有效内容,并且能够检查用户填写的有效性。如果用户填错内容,会有出错提示说明。http://ios.itmdc.com/thread-3182-1-1.htmlSVPullToRefresh 介绍: 下拉刷新列表。http://ios.itmdc.com/thread-3183-1-1.htmlAutocompletion TableView 介绍: 实现文字输入的自动填充/自动提示功能。用户在UITextField中输入英文,根据输入的字母出现文字提示,即类似电话本的首字母索引功能。http://ios.itmdc.com/thread-3184-1-1.htmlLively TableView 介绍: 自定义列表拖动、滑动的各种动画效果。用户用手指拖动列表,列表下方或者上方会产生自定义的动画效果,包括风扇效果(Fan)、卷边效果(Curl)、波浪效果(Wave)、逐渐变淡效果(Fade)等等。http://ios.itmdc.com/thread-3185-1-1.htmlEmailable Cell 介绍: 长按列表中的某一行,弹出一个视图(类似Annotation),可以copy列表的文字或者发邮件。当然,你可以加上其他的命令。http://ios.itmdc.com/thread-3186-1-1.htmlParallax TableView Controller 介绍: 实现类似Path 2.0应用的列表效果。在列表的第一行加上图片,当手指往下拉动列表时,第一行的图片下面的部分会显示出来,即所谓的parallax effect(所谓“视差滚动,Parallax Scrolling”就是让多层背景以不同的速度移动,形成运动视差 3D 效果)。从整体来看,列表上半部分显示图片,图片可以左右切换,即ScrollView,下面是一般的列表形式,可以上下拖动。http://ios.itmdc.com/thread-3187-1-1.htmlRefresh and load more Table 介绍: 手指拖拽/往下拉动列表更新列表内容,手指往上拉动列表加载更多内容。多用于微博应用http://ios.itmdc.com/thread-3188-1-1.htmlMultiple Columns TableView 介绍: 实现具有多列的列表,可用于表格界面。http://ios.itmdc.com/thread-3189-1-1.html 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/16/2821066.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--按钮(Button)效果源码分享--系列教程2

Overlay Menu View 介绍: 点击主按钮,会展开显示更多隐藏的其他按钮。再次点击主按钮,其他按钮会收起隐藏。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=102&fromuid=15AURosetteView 介绍: 实现动态弹出按钮效果。点击界面的“+”按钮,会依次出现其余按钮,排成一个扇形。可以添加更多按钮排成一个圆盘按钮菜单。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=103&fromuid=15Glossy Button 介绍: 实现按钮颜色的渐变、抛光效果,不需要加载图片,纯代码实现。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=104&fromuid=15Button with Round Progress 介绍: 在圆形按钮中加入动态的进度条。效果类似于在Mac OS中预览歌曲的播放按钮。支持iOS5.0以上。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=105&fromuid=15Calculator-Like Gloss Button 介绍: 不需要加载图片,只用代码实现类似计算器按键的按钮(抛光+阴影)效果。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=106&fromuid=15Tile Menu 介绍: 实现一种弹出菜单样式,用户点击屏幕,会依次弹出一排按钮,组成一个菜单。支持iOS5.0以上,支持ARC。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=107&fromuid=15动态下拉菜单 介绍: 实现带动画效果的下拉菜单。用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=108&fromuid=15优酷客户端底部导航 介绍: 实现类似优酷客户端底部导航菜单按钮。效果十分炫,用户拖动列表是,导航按钮自动隐藏。点击某个按钮,更多按钮会从底部引出。具体效果请看视频。测试时,需将模拟器的语言区域设置成中国。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=109&fromuid=15Pie Menu 介绍: 实现饼状的菜单。菜单上的按钮呈现饼状排列,用户用手指滑动选择。这种菜单常见于播放器应用。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=110&fromuid=15MacOs Like Menu Annimation 介绍: 实现Mac OS样式的浮动工具栏(Dock),点击按钮,或者手指划过按钮,按钮会变大并且突起。 http://ios.itmdc.com/forum.php?mod=viewthread&tid=111&fromuid=15 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/06/2806399.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--列表(Table)效果源码分享--系列教程4

Keyboard Avoiding 介绍: 让弹出的键盘永远遮挡不住输入框。输入框在弹出输入键盘的时候往上移动,从而不会被弹出的输入键盘遮挡住。也就是说,当弹出的键盘挡住界面某些内容时,页面会整体往上移动,从而显露出被遮挡的内容。http://ios.itmdc.com/thread-3190-1-1.htmlLazy Table Images 介绍: 异步下载和显示在列表中的图像。当列表有很多行的时候,每一行都有一幅图的时候,异步下载和显示这些图像能够让程序流畅运行,用户不需要等待全部图像下载完毕才能进行操作。http://ios.itmdc.com/thread-3191-1-1.htmlAccordion file navigation 介绍: 实现文件树形结构浏览效果。多用于pdf文档阅读器。http://ios.itmdc.com/thread-3192-1-1.htmlRetractable Section Controller 介绍: 利用UITableView来实现下拉列表(可扩展列表)的效果。下拉列表即支持列表每一行的展开与收起功能。点击列表某一行,会下拉显示更多行,再点击一次,即收起下面的所有行。http://ios.itmdc.com/thread-3193-1-1.htmlDrop Down ComboBox 介绍: 利用UITableView来实现下拉菜单(可扩展列表)的效果。点击列表某一行,会下拉显示更多行。http://ios.itmdc.com/thread-3194-1-1.htmlMovable TableView 介绍: 实现单元格可移动的列表。用户可以移动列表中任意单元格,从而改变单元格的顺序。用户移动过程中不需要让列表处于可编辑模式(edit mode)。仅支持IOS5.0。http://ios.itmdc.com/thread-3195-1-1.htmlSliding TableViewCell 介绍: 实现的效果是,用户用手指从左到右划过列表中的任意一行,此行会有“撕开”的效果,显示其他信息,用户手指反方向划过,则复原。http://ios.itmdc.com/thread-3196-1-1.htmlSliding Table 介绍: 用户用手指从左到右划过列表中的任意一行,此行会有“撕开”的效果,显示其他信息,用户手指反方向划过,则复原。http://ios.itmdc.com/thread-3198-1-1.htmlHorizontal TableView 介绍: 实现水平方向的列表效果。即列表是左右滚动,而不是上下滚动。http://ios.itmdc.com/thread-3200-1-1.htmlInput TableViewCell 介绍: 实现几种可以输入内容的table cell,比如输入文字、数字、日期(通过弹出UIPicker来输入)等等。表单还会根据弹出的键盘动态调整位置,从而不会让弹出的键盘遮盖住表单,也就是说,当弹出的键盘挡住界面某些内容时,页面会整体往上移动,从而显露出被遮挡的内容。http://ios.itmdc.com/thread-3203-1-1.htmlQuadrant TableViewCell 介绍: 自定义UITableViewCell。在列表单元里面实现2*2的方格,每个方格有不同的内容。类似于twitter里面的个人数据统计。http://ios.itmdc.com/thread-3205-1-1.htmlPath TableViewController 介绍: 实现Path应用的时间滚动条效果:即在列表中,移动滚动条的同时,旁边出现信息标签,用于显示移动到哪个列表单元。http://ios.itmdc.com/thread-3206-1-1.htmlInAppSettingsKit 介绍: 自定义UITableViewCell。实现各种样式的表格输入界面。在列表单元中加入各式各样的控件,比如Switch,Slider, TextField等等,用于应用内的各种设置效果。也可以自定义segment header。http://ios.itmdc.com/thread-3208-1-1.html 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/18/2822813.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android学习笔记(九)——更复杂的进度对话框

显示操作进度的对话框 1、使用上一篇创建的同一项目。在activity_main.xml文件里加入一个Button: <Button android:id="@+id/btn_dialog3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClick3" android:text="Click to display a detailed progress dialog" /> 2、在MainActivity.java文件里加入详细的进度条实现代码: 首先加入onClick3()方法: public void onClick3(View v) { showDialog(1);// id为1,在调用回调方法onCreateDialog()时。将id传进去。使其选择case 1情况。 progressDialog.setProgress(0);// 从0開始 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub for (int i = 1; i <= 10; i++) { try { Thread.sleep(1000); progressDialog.incrementProgressBy(100 / 10);// 步进为10 } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } } progressDialog.dismiss();// 销毁对话框 } }).start(); } 再在onCreateDialog()回调方法中加入id=1时的代码(即实现显示操作进度对话框的代码): case 1: progressDialog = new ProgressDialog(this); progressDialog.setIcon(R.drawable.ic_launcher); progressDialog.setTitle("Downloading files..."); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 设置进度条样式 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",// 设置OKbutton new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show(); } }); progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",// 设置取消button new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "Cancel clicked!", Toast.LENGTH_SHORT).show(); } }); return progressDialog; 3、执行一下,效果例如以下: 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5150394.html如需转载请自行联系原作者

优秀的个人博客,低调大师

ios开发学习--文字视图(Text)效果源码分享--系列教程

Swipe Shift Caret 介绍: 在UITextView或者UITextField中插入文字的时候,用手指滑动屏幕左右两边任意位置,都可以左右调整文字输入光标(caret)。在选择文字范围时,用手指左右滑动屏幕,都可以调整选择的左右范围,而不需要用手指拖动范围选择的两根竖线(caret)。http://ios.itmdc.com/thread-3647-1-1.htmlZenKeyboard 介绍: 自定义数字输入键盘的外观。实现类似Square App的数字输入键盘样式。http://ios.itmdc.com/thread-3649-1-1.htmlNumber PadView 介绍: 自定义数字输入键盘的样式。http://ios.itmdc.com/thread-3650-1-1.htmlDigit Input 介绍: 电子记分牌样式的数字输入方式。http://ios.itmdc.com/thread-3651-1-1.htmlPlaceholder TextView 介绍: 让 UITextView 在没有输入文字的时候支持填充placeholder(默认文字)。http://ios.itmdc.com/thread-3653-1-1.htmlUITextView for Code 介绍: 利用 Core Text 实现代码根据语法高亮显示效果,可以用作代码编辑器。代码的高亮效果可以随着输入来即时显示。http://ios.itmdc.com/thread-3655-1-1.html数字键盘添加“完成”按钮 介绍: 系统自带数字键盘,添加“完成”自定义按钮。http://ios.itmdc.com/thread-3656-1-1.htmlUIKeyboardCoView 介绍: 在弹出的键盘顶部加入新的视图(UIView)。可以在新的视图上加上按钮等控件。支持横屏。http://ios.itmdc.com/thread-3657-1-1.htmlCustom Keyboard 介绍: 在弹出的键盘上加入新的一行,用于输入自定义的字符。键盘上新的一行每个输入键都有5个字符,如果只是点击某个键盘,那么输入的就是键盘中间的字符,如果往某个方向拖动(tab and drag)这个键,则输入的就是这个键上对应方位的字符,这就是所谓的swipe button。http://ios.itmdc.com/thread-3659-1-1.htmlCore Text Wrapper 介绍: 用Core Text给文字进行排版,可以实现文字多列排版,和图文混排。http://ios.itmdc.com/thread-3660-1-1.html TSEmojiView 介绍: 实现表情键盘例子。http://ios.itmdc.com/thread-3661-1-1.htmlCore Text Tricks 介绍: 用Core Text给文字进行排版,demo中实现文字双列排版和三列排版(多列排版),可以居中对齐、居左和居右。http://ios.itmdc.com/thread-3662-1-1.html简易记事本 介绍: 实现一个简易记事本,可以添加、删除、保存日记。导入日记的动画也挺不错的。http://ios.itmdc.com/thread-3664-1-1.htmlCoreText Hyperlink View 介绍: 给TextView中的文字加上链接。在Text view上实现丰富的文字效果,包括文字大小、颜色、字体、链接等等。实现类似于网页的文字效果。http://ios.itmdc.com/thread-3665-1-1.htmlRich HTML CoreText 介绍: 在Text view上实现丰富的文字效果,包括文字大小、颜色、字体、下划线,链接以及图文混排等等,以及对文字进行排版。实现类似于网页的文字效果。http://ios.itmdc.com/thread-3666-1-1.htmlGrowing TextView 介绍: 实现短信输入框的可变高度文字框(TextView)效果。也就是TextView支持输入多行文字,并且框的高度随着输入文字而自动变高。http://ios.itmdc.com/thread-3667-1-1.html 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2012/12/14/2818755.html ,如需转载请自行联系原作者

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册