这两天一直在做头分给的任务,废话不多说,问题总结:
1.如果有一个Button在一个tableView的cell中,我如何通过点击button获得cell的指针?
通过button事件,里面有一个event对象,记录了当前点击座标,然后通过座标能够找到所属的cell
NSSet *touched=[event allTouches];
UITouch*touch=[touched anyObject];
CGPoint cure=[touch locationInView:self.tableView];
NSIndexPath *indexPath=[self.tableView indexPathForRowAtPoint:cure];
2.什么时候应该用didSelectedRowAtIndex方法:
如果要整行cell触发点击事件的话,就用到此函数方法
3.哪些控件具有内置的触摸事件处理机制:
因为另外一些并不具有这些机制,如果想获得触摸的效果必须手动添加手势。
继承UIControl的控件,UIContorl的控件和一般view最大区别是他实现了一套事件机制,所以万不得已才用手势,否则就用UIControl的子类。
UIControl所有的子类:
UIButton UIdatepiceker UIpagecontrol UIsegmentedcontrol UItextfield UIslider UIwitch
经常用到的是UIButton UItextfield UIslide UIwitch
这些控件具有内置触控事件,开发控件并支持触控事件的话就从UIControl继承,而不是UIView.
4.UITableView的基类:
UIScrollview它支持滚动
5.UIScrollview的子类有哪些:
UITableVIew和UITextview UICollectionView
UIControl和UIScrollView的子类占了ios控件类的大部分
6.UITableView中UITableVIewDataSource中必须实现的协议函数是哪些:
CellRowAtIndex和NumberOfRowsInsection
可以在xode中,右键查看定义,转到类声明处,然后 查看@required下面是必须要实现的@optional下面是按需实现的
7.对于UITableView来说更新整个表的内容用哪个函数,更新某一个cell的内容要用哪个函数
更新整个表的是reloadData
更新某一个cell的内容是reloadRowsAtIndexPaths
8.如何创建一个IndexPath对象
NSIndexPath*indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
这个函数很特别,因为它是声明在UITableView.h中,而不是IndexPath.h中的仅对UITableView有用
9.补充一下内存管理:
如果一个类似一个XXXXDelegate作为成员变量,请使用@property(nonautomic,weak)UITableVIewDelegate*delegate;
防止循环引用。
继续写demo去了。。。。。。。