|  
 
 
iOS开发过程中的心得 (一)关于UITableView  1.任意设置Cell选中状态的背景色:  UIView *bgView = [[UIView alloc] init];  bgView.backgroundColor = [UIColor orangeColor];  self.selectedBackgroundView = bgView;  [bgView release];  该方法设置的是纯色, 也可以使用任何图片,把selectedBackgroundView设成UIImageView。 新年祝福网页     2.如果Table中有控件,这里以switch为例(适合其它可修改值的各种控件),要在switch的UIControlEventValueChanged事件的处理方法里把值记录下来。以下方法是不可取的:在执行的最后把所有cell遍历一遍,处理各控件的值。因为没显示出来的cell,是取不到的,当然也就取不到该cell里的控件。所以正确的做法是,在控件可见时,如果值变了,立即处理。当然,如果你的Cell少,不会出现隐藏的情况就随便了。      3.方法flashScrollIndicators:这个很有用,闪一下滚动条,暗示是否有可滚动的内容。可以在ViewDidAppear或[table reload]之后调用。  
4.点击Cell中的按钮时,如何取所在的Cell: -(void)OnTouchBtnInCell:(UIButton *)btn  {  CGPoint point = btn.center;  point = [table convertPoint:point fromView:btn.superview];  NSIndexPath* indexpath = [table indexPathForRowAtPoint:point];  UITableViewCell *cell = [table cellForRowAtIndexPath:indexpath];  ...  //也可以通过一路取btn的父窗口取到cell,但如果cell下通过好几层subview才到btn,就要取好几次 superview,所以我用上面的方法,比较通用。这种方法也适用于其它控件。  }  
(二)设置线宽,如果是retina屏,lineWidth设为1,实际显示的宽度是2个像素,这里进行一下处理:   
#define SETLINEWIDTH(ctx,w) CGContextSetLineWidth(ctx, w/[UIScreen mainScreen].scale)     (三)_cmd:表示该方法的selector,可以赋值给SEL类型的变量,可以做为参数传递。  例如一个显示消息的方法:  -(void)ShowNotifyWithString:(NSString *)notifyString fromMethod:(SEL) originalMethod;  originalMethod就是调用这个方法的selector。     调用:  NSString *stmp = @"test";  [self ShowNotifyWithString:stmp fromMethod:_cmd];     如何记录当前方法名称:  NSLog(NSStringFromSelector(_cmd));     (四)在CGContext中输出汉字:CGContextShowTextAtPoint是不支持汉字的,需要用NSString的drawAtPoint或drawInRect方法     (五)一个不停震动的方法:  // 定义一个回调函数,震动结束时再次发出震动  void MyAudioServicesSystemSoundCompletionProc (SystemSoundID  ssID,void *clientData)  {        BOOL* iShouldKeepBuzzing = clientData; 
  [1] [2] [3] [4] [5] [6] 下一页  
 |