项目小窍门总结

作ios开发的经常会遇到一些诸如:修改tabbar/navgation bar背景之类的问题,这些问题看似小,但有时候会占据较多的时间来解决。

我把个人在最近项目上遇到的一些tips纪录下来,供以后使用。如有不正确的或是更好的方法,请大家指教。

  • UITextField

  在nib文件种,该控件 自动启用return功能启用后的效果是: 如果控件内没有输入,则return不可点。

  • UITableView的响应

  tableview所在的父view如果frame比tableview的小,那么,tableview上的点击事件会不响应。

  addsubview后,子view的drawrect会调用一次

  • UITabBar 样式自定义

  我采用的是 [tabBar insertSubview:atIndex]方法。因为项目中的tabbar带有颜色,所以做了几个tabbar分别选中的图,点击的时候直接切换了贴上去。

  • UITableView 多选

  ios5以前要实现,比较麻烦,网上有教程实现。 从ios5开始,添加了是否允许多选的属性,非常方便。使用方法直接搜索文档即可。

  •  UITableViewCell 上的button

  点击cell上Button触发动作,触发时往往需要获取数据源的一些信息,这些信息往往存储在array中,通过cell的位置来获取。如果设置button的tag为cell的顺序,这样方便获取数据,但是破坏了tableviewcell的重用机制。如果使用tableviewcell的重用机制,那么所有的button的tag势必都相同。 解决方法就是:设置重用,给button分配统一的tag,然后根据button.superview.superview来获取所在的cell(因为cell上的控件一般是加载在cell.contentview上,所以有两个suoerview),然后通过cell来获取indexPath,从而就知道点击的是哪个位置的button

 

  • 自定义手动添加的NavigationBar

  所谓手动添加,是直接加载NavigationBar而不是通过NavigationController。这时时要修改NavBar上按钮的式样通过navbar.topitem

  • NSNotificationCenter

  消息机制是用于刷新UI等比较有用,常见的方式。添加的时候有一个object参数,可以指定observer只接受object发出的消息。如果object为nil。那么observer就接受任何对象发出的响应消息

  • JSON字符串解析: Illegal start of token []

使用SBJson库解析某个json字符串,出现如上错误。使用ios5提供的NSJSONSerilization出现garbage end。猜测是返回的结果中最后}后面有看不见的脏数据。服务器怎么修改不知道,刚好那天相关人员也不在。最后通过找到最后一个}的位置将字符串截取出来再解析。

  • 添加view到statusBar位置

直接添加是无论怎么指定frame都添加不上的。网上有通过subclass UIWindow来做,那个没尝试过。因为项目中只是涉及一小部分,采用的是先设置stausBar隐藏,然后再添加view的方式

2012-06-18 11:45:27

先总结如下,以后有,再补充。

posted on 2012-06-18 11:46  scorpiozj  阅读(592)  评论(0编辑  收藏  举报