ios之基础tableview的问题总结

这两天一直在做头分给的任务,废话不多说,问题总结:

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去了。。。。。。。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章