ios开发总结

转载 2012年08月16日 18:13:17

3.方法flashScrollIndicators:这个很有用,闪一下滚动条,暗示是否有可滚动的内容。可以在ViewDidAppear[table reload]之后调用。 


设置线宽,如果是retina屏,lineWidth设为1,实际显示的宽度是2个像素,这里进行一下处理:  

#define SETLINEWIDTH(ctx,w) CGContextSetLineWidth(ctx, w/[UIScreen mainScreen].scale) 


(四)在CGContext中输出汉字:CGContextShowTextAtPoint是不支持汉字的,需要用NSStringdrawAtPointdrawInRect方法 

  

(五)一个不停震动的方法: 

// 定义一个回调函数,震动结束时再次发出震动 

void MyAudioServicesSystemSoundCompletionProc (SystemSoundID  ssID,void *clientData) 

      BOOL* iShouldKeepBuzzing = clientData; 

      if (*iShouldKeepBuzzing) {        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

      } else { 

           //Unregister, so we don't get called again... 

           AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate); 

      }  

  

以下为调用的代码: 

BOOL iShouldKeepBuzzing = YES; 

AudioServicesAddSystemSoundCompletion ( 

  kSystemSoundID_Vibrate,                                                                       

  NULL,                                                                                                    

  NULL,                                                                                                              

  MyAudioServicesSystemSoundCompletionProc,                                                 

&iShouldKeepBuzzing ); 

AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); 


(六)关于更新,iPhone自动保存document中的内容,如果你把文件放在document中,以后开发又改了这个文件的内容或格式,那更新之后运行很可能出错。解决的办法是,配置文件放bundle里,或者改个文件名。每次更新前都要从App store 下载旧版本,运行一段一时间后,再此基础上编译新版,运行不出错才能上传 


(十一)UIImage:stretchableImageWithLeftCapWidth:topCapHeight: 有时图片模糊(blur)的原因:像素没有和device pixel对齐.使用instrument Core Animation可以检测这个,勾选"color misaligned images",如果图片显示为红紫色,就是没有对齐


(十二)UIPopoverController如果是用presentPopoverFromBarButtonItem显示的,设备旋转时,popover可以自动调整位置;如果是用presentPopoverFromRect显示的, 需要present again 

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 

[aPopover presentPopoverFromRect:targetRect.frame inView:self.view permittedArrowDirecti*****:UIPopoverArrowDirectionAny animated:YES]; 


(十四)禁止textFieldtextView的复制粘贴菜单: 

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 

     if ([UIMenuController sharedMenuController]) { 

       [UIMenuController sharedMenuController].menuVisible = NO

     } 

     return NO


(十五)时间相关 

NSDate需要设置calendar,使用不方便也因为服务器传过来的是time_t格式,所以我在客户端对时间的操作主要用的C语言的方法。 

需要注意的是,有的函数不是线程安全的,也就是说在同一个范围内调用多次时,需要调用线程安全的版本,这样的函数有: 

localtime_r 

asctime_r 

ctime_r 

gmtime_r 

localtime_r 

另外,可以直接给struct tm各成员变量赋值,例如(注意顺序) 

struct tm tmStart = {second,minute,hour,day, mon, year}; 

struct tm的各成员是不能的加减的,因为超过了各变量的范围,可能出错,需要先转成time_t,再加减相应的时间


(十七)GestureRecognizer相关 

1.一个ViewGestureRecognizer又有按钮(或其它需要处理action event的控件)时,有时按钮不灵敏,解决办法: 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

     CGPoint pt      = [touch locationInView:baseView]; 

     UIView *btn     = [baseView viewWithTag:TAG_MYBTN]; 

     CGPoint ptInbtn = [baseView convertPoint:pt toView:btn]; 

     return ![btn pointInside:ptInbtn withEvent:nil]; 

  

2.实现某个view点一下就移除时,要防止移除两次。(此方法适用于希望GestureRecognizer只执行一次的情况) 

-(void)OnTapViewTobeRemoved:(UITapGestureRecognizer *)sender 

     if (!sender.enabled) { 

           return

     } 

     sender.enabled = NO

     [sender.view removeFromSuperview]; 


(二十五)category可以用来调试。除了隐藏私有方法外,我主要用它截住函数。 
1:测试时我想知道TableViewCell有没有释放,就可以这样写 
@implementation UITableViewCell(dealloc) 
-(void)dealloc 

NSLog(@"%@",NSStringFromSelector(_cmd)); 
  // allSubviewscookBook里的函数,可以取一个view的所有subView 
    NSArray *array = allSubviews(self); 
    NSLog(@"%@",array); 

    [super dealloc]; 

@end 
其它的类也可以这样写,你随便输出什么 
2:我调试程序,觉得table的大小变了,想找到在哪改变的,这样做: 
@implementation UITableView(setframe) 
-(void)setFrame:(CGRect)frame 

NSLog(%"%@",self); 
    [super setFrame: frame]; 

@end 

iOS中国开发者 -2014年度总结报告

尊敬的 iOS中国开发者 群友们: 崭新的2015年开始了,我们也都开始踏上新的旅途,加入群后,就意味着我们是一个团队,在这里,我们一起学习,一起研究,互相帮忙,探讨技术和人生; 二年前,为了...
  • mapboo
  • mapboo
  • 2015年01月09日 21:15
  • 1389

多年iOS开发经验总结(转)

原文:http://www.jianshu.com/p/1ff9e44ccc78 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDis...
  • u010462316
  • u010462316
  • 2017年07月05日 14:53
  • 1107

iOS开发2016小知识点记录

iOS开发中遇到的小知识点汇总,小小知识,积少成多
  • Deft_MKJing
  • Deft_MKJing
  • 2016年07月27日 18:31
  • 1122

两年的iOS开发经验项目总结

  • 2012年11月17日 15:19
  • 17.56MB
  • 下载

iOS开发总结

  • 2014年01月06日 21:25
  • 544KB
  • 下载

ios开发--Objective-C 基础总结-(重点已标识)

  • 2015年02月02日 23:30
  • 315KB
  • 下载

ios开发总结要领

  • 2013年05月30日 14:30
  • 4KB
  • 下载

iOS开发总结

  • 2014年12月17日 13:41
  • 45KB
  • 下载

iOS开发指南 从零基础到App Store上架第3版(上).pdf

  • 2017年09月26日 05:41
  • 51.81MB
  • 下载

ios开发绘制柱状图,胼状图,拆线图,雷达图

  • 2016年09月05日 15:51
  • 8.56MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios开发总结
举报原因:
原因补充:

(最多只允许输入30个字)