概述1.设置tag方便使用 在cell中放入多个控件的时候使用tag很方便的区分。在其他的地方使用tag也方便编程。呵呵 2.今天试验一个关于删除的问题,也就是直接在cell中添加一个按钮,点击按钮实现删除 *** 作,这个应该是Apple不允许的,没有设置到编辑模式,我使用的是直接reload数据源的方法,但是发现一个问题,也就是在选中该行的时候我想保存该行的行数,但是我保存不了,也不知道是为什么,难道 1.设置tag方便使用 在cell中放入多个控件的时候使用tag很方便的区分。在其他的地方使用tag也方便编程。呵呵 2.今天试验一个关于删除的问题,也就是直接在cell中添加一个按钮,点击按钮实现删除 *** 作,这个应该是Apple不允许的,没有设置到编辑模式,我使用的是直接reload数据源的方法,但是发现一个问题,也就是在选中该行的时候我想保存该行的行数,但是我保存不了,也不知道是为什么,难道是delegate的缘故,还是第一次点该行再次点的时候呢个值已经变了,但是我看的时候是空,郁闷。最后我是用NSMutableArray来实现的,在选中该行的时候我让NSMutableArray对象addobject该行然后在使用的时候取第一个值也就是NSMUtableArrayObjectAtIndex:0呵呵具体成果了。原理还在摸索中。 3.UItableVIEwCell的重用机制 UItableVIEwCell在加载的时候只更新内容,也就是说如果你在加载cell的时候在cell中加入button假如100个cell,你设置tag的时候是更加row加入,你想的到得tag是从0到99,但是结果不是呢样的,如果你tablevIEw能显示10个cell呢tag应该只有10,在你向下拉的时候更改的仅仅是显示的内容。具体的重用机制还需要更深入研究。 4.NSArray初始化的时候,今天很晕,刚开始做的第一个程序我在初始化NSArray的时候居然这样搞了一下 NSArray *array = [[NSArrayalloc]initWithObjects:(@"a",@"b",nil)];编译也没有错误,运行没结果,呵呵。去掉括号,没问题了。受C的影响。 5。向UINavigation添加tableVIEw。 table = [[UItableVIEw alloc] initWithFrame:CGRectMake(0,320,440)]; [table setDelegate:self]; [table setDataSource:self]; [self.vIEw addSubvIEw:table]; 6.得到button的Title UIbutton *but = [[UIbutton alloc]init]; [but setTitle:@"Title"forState:UIControlStatenormal]; [but addTarget:self action:@selector(click:)forControlEvents:UIControlEventtouchUpIns IDe]; -(voID)click:(ID)sender { Nsstring *s = [senderTitleForState:UIControlStatenormal]; } 7.对字符串的截取 *** 作。按照“|”实现分割,去掉后面的数字只要前面部分 Nsstring *s =@"哈根达斯,4223|帝王蟹,3717|三文鱼,3255|提拉米苏,2733|生蚝,1860|烤鳗,1451|生鱼片,1430|龙虾色拉,1252|北极贝,1230|鲍鱼片,772|芒果冰沙,730|烤鳗鱼,706|龙虾沙拉,692|海鲜泡饭,600|冰淇淋,508|芒果汁,499|鲍片,357|佛跳墙,308|鲍鱼,295|HGDS,262 "; NSMutableArray *array = [[scomponentsSeparatedByStr ing:@"|"]retain]; NSMutableArray *mutablearray = [[NSMutableArray alloc]init]; int i =0; for(i;i<[array count]; i++) { Nsstring *s1 = [array objectAtIndex:i]; NSArray *a = [s1componentsSeparatedByStr ing:@","]; [mutablearray addobject:[aobjectAtIndex:0]]; } for(i =0 ;i<[mutablearray count];i++) { NSLog([Nsstring stringWithFormat:@"%@",[mutablearrayobjectAtIndex:i]]); } 8.如何修改Xcode中copyright 2009 __MyCompanyname__. All rightsreserved.的名称。 以前在CC上见LV发过这个帖子,当时修改成功了,但是重装了一下系统,又挂了,显示的还是__MyCompanyname__,今天又被找到了,记下来呵呵。 defaults write com.apple.xcode PBXCustomTemplateMacroDe Finitions '{ORGANIZATIONname = "名字"; }' 9.将音频转换成CAF格式 在mac上使用afconvert命令可以将音频文件转换成caf文件。 afconvert -f caff -d LEI16@44100 -c 1 in.wavout.caf -f 指定文件格式 -d 数据格式,@44100指采样率 -c 通道数 10.怎样从core graphics获取UIImage - (voID)vIEwDIDLoad { [supervIEwDIDLoad]; UIGraphicsBeginImageCont ext(CGSizeMake(20,20)); CGContextRefctx = UIGraphicsGetCurrentCont ext(); CGContextBeginPath(ctx); CGContextAddArc(ctx,10,2*M_PI,1); CGContextSetRGBFill@R_301_6004@ (ctx,1,1); CGContextFillPath(ctx); UIImage*redBall =UIGraphicsGetimageFromCu rrentimageContext(); UIGraphicsEndImageContex t(); UIImageVIEw*redBallVIEw = [[UIImageVIEw alloc]initWithImage:redBall]; redBallVIEw.center =CGPointMake(160,330); [self.vIEwaddSubvIEw:redBallVIEw]; } 11.UIImage imagenamed和UIImageimageWithContentsOffile的区别 UIImageimagenamed将为这个图像提供缓存,所以如果你再次需要同一图像时,图像将被从内部缓存而 不是从资源中加载。而坏消息也是iPhone将为此图像提供缓存。这样如果图片过多就好出现内存泄露的现象。 UIImage imageWithContentsOffile将不提供缓存。 12.在使用IB添加NAvigation的时候出现白屏。 刚开始的时候我把window给删掉了,结果出来就是白屏,没有东西,什么都没有,忘记还要关联AppDelegate里面的window到window了。如果使用IB创建VIEwController.xib是可以完全删除的。不影响运行结果。 13.- (CGfloat)tableVIEw:(UItableVIEw *)tableVIEwheightForRowAtIndexPath:(NSIndexPath*)indexPath可以更改cell的高度,利用indexPathrow可以随意更改每一行的高度例如 - (CGfloat)tableVIEw:(UItableVIEw *)tableVIEwheightForRowAtIndexPath:(NSIndexPath*)indexPath { if([indexPath row] == 2) return 80; else { return 100; } } 14.设置IPhone程序的启动画面 在XCode的项目的resource文件夹中追加名为Default.png的图片就可以了。你可以使用Organizer工具来抓取iPhone实机上图片。 Organizer是XCode中内含的一个工具,通过选择菜单XCode -> Window->Organizer来启动。这样就会在程序加载前的呢一会黑屏中运行该画面! 15.播放caf音频文件 引入AudioToolBox.framework。导入音频文件,声明变量SystemSoundIDsound1; Nsstring *path1 = [[NSBundle mainBundle] pathForResource:@"sound1"ofType:@"caf"];获取音频文件路径 CFURLRef sound1URL = (CFURLRef)[NSURLfileURLWithPath:path1];将路径转换为CFURLRef AudioServicesCreateSyste mSoundID(sound1URL,&sound1);加载音频文件并与指定soundID联系起来 然后在需要播放的地方加入AudioServicesPlayAlertSo und(sound1);就可以了。 16.将vIEw设置成圆角 今天从CC上看到的,实验了一下,效果挺好的。呵呵 首先导入QuartzCore.framework,#import<QuartzCore/QuartzCore.h> 然后添加下面两行代码: vIEw.layer.cornerRadius = 8;//圆角 vIEw.layer.masksToBounds =YES;//在所在的层绘制圆角 17.设置坐标和大小 CGPoint a = CGPointMake(10,20); CGSize b = CGSizeMake(40,40); CGRect aa = CGRectMake(10,30,240,240); 18.把UI@R_301_6004@转换为CG@R_301_6004@ UI@R_301_6004@ *red@R_301_6004@ = [UI@R_301_6004@ red@R_301_6004@]; CG@R_301_6004@ *Red@R_301_6004@ = red@R_301_6004@.CG@R_301_6004@; 19.CALayer就是层,这个层你随便控制他的大小,旋转,角度,坐标变化或者内容之类的信息,这些变化还可以通过动画表现出来。UIVIEw所有你能看到的显示的内容,后面都有一个Layer。下面来自定义添加一个CALayer。 CALayer *layer = [[CALayer alloc]init];//定义一个layer CGRect aa = CGRectMake(10,240);//设置该layer的坐标和大小 layer.frame = aa; UI@R_301_6004@ *c = [UI@R_301_6004@ red@R_301_6004@]; [layer setBackground@R_301_6004@:(c.CG@R_301_6004@)];//设置该layer的背景,因为layersetBackground@R_301_6004@用到的是CG@R_301_6004@所以要进行一次转换 [self.vIEw.layer insertSublayer:layer atIndex:0];//在selfvIEw中添加该layer 20.在使用Xcode编写程序的时候,在类方法上面option +双击就可以跳到document中的相关说明下面,很方便! 21.命令行解压tgz文件: tar xzvf filename 总结
以上是内存溢出为你收集整理的ipad 开发常用问题全部内容,希望文章能够帮你解决ipad 开发常用问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)