IOS教程之iOS开辟小技能总结1仓酷云
Model的改变最好通过Notification来传播之前吃过这样的亏最好不要用delegate模式)UIViewController很久没写博客了,如今总结一下平常开辟时碰到的一些成绩,和办理计划。上面以问答体例来纪录1、当利用UITableView的Plain作风时,cell的数目占不满一屏时,会呈现无用的cell支解线,怎样往失落呢?
[*]-(CGFloat)tableView:(UITableView*)tableViewheightForFooterInSection:(NSInteger)section
[*]{
[*]return0.01f;
[*]}
[*]-(UIView*)tableView:(UITableView*)tableViewviewForFooterInSection:(NSInteger)section
[*]{
[*]return;
[*]
[*]//IfyouarenotusingARC:
[*]//return[autorelease];
[*]}
2、怎样猎取iOS的idfa和mac地点
[*]//formac
[*]#include<sys/socket.h>
[*]#include<sys/sysctl.h>
[*]#include<net/if.h>
[*]#include<net/if_dl.h>
[*]
[*]//foridfa
[*]#import<AdSupport/AdSupport.h>
[*]
[*]-(NSString*)macString{
[*]
[*]intmib;
[*]size_tlen;
[*]char*buf;
[*]unsignedchar*ptr;
[*]structif_msghdr*ifm;
[*]structsockaddr_dl*sdl;
[*]
[*]mib=CTL_NET;
[*]mib=AF_ROUTE;
[*]mib=0;
[*]mib=AF_LINK;
[*]mib=NET_RT_IFLIST;
[*]
[*]if((mib=if_nametoindex("en0"))==0){
[*]printf("Error:if_nametoindexerrorn");
[*]returnNULL;
[*]}
[*]
[*]if(sysctl(mib,6,NULL,&len,NULL,0)<0){
[*]printf("Error:sysctl,take1n");
[*]returnNULL;
[*]}
[*]
[*]if((buf=malloc(len))==NULL){
[*]printf("Couldnotallocatememory.error!n");
[*]returnNULL;
[*]}
[*]
[*]if(sysctl(mib,6,buf,&len,NULL,0)<0){
[*]printf("Error:sysctl,take2");
[*]free(buf);
[*]returnNULL;
[*]}
[*]
[*]ifm=(structif_msghdr*)buf;
[*]sdl=(structsockaddr_dl*)(ifm+1);
[*]ptr=(unsignedcharchar*)LLADDR(sdl);
[*]NSString*macString=[NSStringstringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X",
[*]*ptr,*(ptr+1),*(ptr+2),*(ptr+3),*(ptr+4),*(ptr+5)];
[*]free(buf);
[*]
[*]returnmacString;
[*]}
[*]
[*]-(NSString*)idfaString{
[*]
[*]NSBundle*adSupportBundle=;
[*];
[*]
[*]if(adSupportBundle==nil){
[*]return@"";
[*]}
[*]else{
[*]
[*]ClassasIdentifierMClass=NSClassFromString(@"ASIdentifierManager");
[*]
[*]if(asIdentifierMClass==nil){
[*]return@"";
[*]}
[*]else{
[*]
[*]//fornoarc
[*]//ASIdentifierManager*asIM=[[init]autorelease];
[*]//forarc
[*]ASIdentifierManager*asIM=[init];
[*]
[*]if(asIM==nil){
[*]return@"";
[*]}
[*]else{
[*]
[*]if(asIM.advertisingTrackingEnabled){
[*]return;
[*]}
[*]else{
[*]return;
[*]}
[*]}
[*]}
[*]}
[*]}
[*]
[*]-(NSString*)idfvString
[*]{
[*]if([respondsToSelector:@selector(identifierForVendor)]){
[*]return[.identifierForVendorUUIDString];
[*]}
[*]
[*]return@"";
[*]}
[*]
不外请注重:iOS7以后,mac地点就猎取不到了。参考(转):
[*]英文原文:IniOS7andlater,ifyouaskfortheMACaddressofaniOSdevice,thesystemreturnsthevalue02:00:00:00:00:00.Ifyouneedtoidentifythedevice,usetheidentifierForVendorpropertyofUIDeviceinstead.(AppsthatneedanidentifierfortheirownadvertisingpurposesshouldconsiderusingtheadvertisingIdentifierpropertyofASIdentifierManagerinstead.)
[*]翻译:从iOS7及更高版本今后,假如你向ios设备哀求猎取mac地点,体系将前往一个流动值“02:00:00:00:00:00”,假如你必要辨认设备的独一性,请利用UIDevice的identifierForVendor属性。(因告白目标而必要辨认设备的使用,请思索利用ASIdentifierManager的advertisingIdentifier属性作为替换)
3、是否是为了UITextFiled在TableView中被遮挡而懊恼,尝尝上面的这段代码把。让TableViewCell中UITextFiled随点击转动到可视地位
[*]//textfileuitableview转动
[*]
[*]
[*]UITableViewCell*cell;
[*]if(!IS_OS_7_OR_LATER){
[*]//LoadresourcesforiOS6.1orearlier
[*]cell=(UITableViewCell*)textField.superview.superview;
[*]
[*]}else{
[*]//LoadresourcesforiOS7orlater
[*]cell=(UITableViewCell*)textField.superview.superview.superview;
[*]//TextField->UITableVieCellContentView->(iniOS7!)ScrollView->Cell!
[*]}
4、让UITableView的Cell不重用
偶然候我们的UITableview的cell是无限的10个8个的,基本没需要重用。重用反而招致良多成绩。个中思绪就是,给这无限的10个cell分歧的标示
[*]-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath
[*]{
[*]
[*]NSString*CellIdentifier=,];//以indexPath来独一断定cell
[*]UITableViewCell*cell=;//出列可重用的cell
[*]if(cell==nil){
[*]cell=[initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];
[*]}
[*]}
5、在iOS7,怎样检测到体系自带ViewController手势前往停止
[*]-(void)navigationController:(UINavigationController*)navigationControllerwillShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated
[*]{
[*]id<UIViewControllerTransitionCoordinator>tc=navigationController.topViewController.transitionCoordinator;
[*][tcnotifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext>context){
[*]NSLog(@"7:%i",);
[*]}];
[*]}
这个检测必要设置self.navigationController.delegate=self;以后viewController要UINavigationBarDelegate完成此协定。
另有一个关头的设置,必要在以后ViewController得当的中央设置self.navigationController.delegate=nil;不然会招致溃散。我是如许设置的,
在viewDidAppear设置self.navigationController.delegate=self;viewWillDisappear时设置self.navigationController.delegate=nil;
包管设置成双成对。
参考:http://stackoverflow.com/questions/20639006/getting-interactivepopgesturerecognizer-dismiss-callback-event
只能IB识别IB也没那么高深XIB文件解开之后就是一堆代码之前面过一家小公司看我当时写的程序里面用到了IB一脸不屑 看《iPhone 4与iPad开发基础教程》,跟着一步步来 边吃零食边看Stanford的视频教程 开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦 到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了 down下code4app网站的每个分类的代码挨着看 AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。 重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。 最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。 在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解 然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践, 中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者, 边吃零食边看Stanford的视频教程 看完这个你就可以有多种选择来踏入做应用的阶段 在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。 每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。 还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。 iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
页:
[1]
2