2014-06-24 UITableView

1.针对cell上按钮(UIButton)的不响应SEL

  这个问题一般是由xib导致的,当从xib中load cell的时候,cell会自动在xib上加一层contentView,所以xib中的按钮等控件都被contentView挡住了,可以将contentView的backgroundColor设置为黑色,可以发现确实xib中load的view被挡住了。可以在cell的awakeFromNib中利用cell的bringSubviewToFront:方法将xib中的view都添到最上层,或者利用sendSubViewToBack: 将contentView移到最底层,也可将xib中的view添加到cell的contentView上,那么这个问题就解决了。

2.UITableViewDelegate 的一些方法简介(主要提供cell的选择,高亮,高度等操作)

(1)- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

  这个方法一般用来展示一些cell刚出来时的动画(或者说刷新动画),可以根据不同的cell做一些不同的事情。

(2)- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);

  同上,不过针对的是headerView。

(3)- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);

  同上,不过针对的是footerView。

(4)- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath NS_AVAILABLE_IOS(6_0);

(5)- (void)tableView:(UITableView *)tableView didEndDisplayingHeaderView:(UIView *)view forSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);

- (void)tableView:(UITableView *)tableView didEndDisplayingFooterView:(UIView *)view forSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);

// Variable height support

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

// Use the estimatedHeight methods to quickly calcuate guessed values which will allow for fast load times of the table.

// If these methods are implemented, the above -tableView:heightForXXX calls will be deferred until views are ready to be displayed, so more expensive logic can be placed there.

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(7_0);

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section NS_AVAILABLE_IOS(7_0);

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForFooterInSection:(NSInteger)section NS_AVAILABLE_IOS(7_0);

// Section header & footer information. Views are preferred over title should you decide to provide both

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;   // custom view for header. will be adjusted to default or specified header height

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;   // custom view for footer. will be adjusted to default or specified footer height

// Accessories (disclosures).

- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath NS_DEPRECATED_IOS(2_0, 3_0);

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath;

// Selection

// -tableView:shouldHighlightRowAtIndexPath: is called when a touch comes down on a row.

// Returning NO to that message halts the selection process and does not cause the currently selected row to lose its selected look while the touch is down.

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0);

- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0);

- (void)tableView:(UITableView *)tableView didUnhighlightRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0);

// Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection.

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0);

// Called after the user changes the selection.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0);

// Editing

// Allows customization of the editingStyle for a particular cell located at ‘indexPath‘. If not implemented, all editable cells will have UITableViewCellEditingStyleDelete set for them when the table has editing property set to YES.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;

返回TableView为editing时cell的editingStyle

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0);

cell左滑出现的删除按钮,通过此函数,可以修改按钮的名称。

// Controls whether the background is indented while editing.  If not implemented, the default is YES.  This is unrelated to the indentation level below.  This method only applies to grouped style table views.

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath;

当cell为editing状态的时候是否缩进,cell的缩进只是自动缩进contentView。

// The willBegin/didEnd methods are called whenever the ‘editing‘ property is automatically changed by the table (allowing insert/delete/move). This is done by a swipe activating a single row

- (void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath;

- (void)tableView:(UITableView*)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath;

// Moving/reordering

// Allows customization of the target row for a particular row as it is being moved/reordered

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath;

该函数可以实现cell在section之间的移动,也可以通过此函数禁止cell在section之间移动

需跟dataSource中的一些方法配合使用

// Indentation

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath; // return ‘depth‘ of row for hierarchies

对于不同indexPath的cell的不同缩进

// Copy/Paste.  All three methods must be implemented by the delegate.

下面三个函数控制cell的一些文字编辑操作(包括拷贝,剪切,粘贴,选择,全选等操作)

- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(5_0);

特定cell是否显示菜单

- (BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender NS_AVAILABLE_IOS(5_0);

action指的就是跟编辑有关的一些函数,如cut:,  copy:,  paste:, select:,  selectAll:,  delete:等函数

如果当action为cut: 时返回为NO,那么菜单上就没有剪切选项

- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender NS_AVAILABLE_IOS(5_0);

对于特定的action做特定的响应,即当用户点击了菜单上的某个item时我们该如何响应

2014-06-24 UITableView,布布扣,bubuko.com

时间: 2024-10-14 11:36:40

2014-06-24 UITableView的相关文章

2014年24段魔尺变球视频教程(升级版)

.layer1{ width:480px; height:360px; overflow:hidden; } 2014年24段魔尺变球视频教程(升级版) 2014-09-14 23:27曾在优酷网上传了24段魔尺变球的视频教程. 互联网思维讲究:迭代思维,极致思维. 今天2014-09-18 23:02,偶又专门录制并上传了一个24段魔尺变球的升级版视频教程. 此次升级版,主要做了如下修改: 1.镜头不是迎面对着我人,而是迎面对着我手,好处是可以清晰扑捉手的一招一式,将镜头的焦点集中在魔尺和手上

JavaScript基础系列目录(2014.06.01~2014.06.08)

下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%20%E6%80%BB%E7%BB%93/ 1. Javascript基础---语法(待完成) 2. JavaScript基础---数据类型(待完成) 3. JavaScript基础---Array数组(待完成) 4. JavaScript基础---正则表达式(待完成) 5. Jav

Cheatsheet: 2014 06.01 ~ 06.30

Mobile Developing iOS8 Apps Using Swift – Part 1- Hello World The Insider's Guide to Android Interviewing iOS8 – How to use Objective-C Classes in Swift Developing iOS8 Apps Using Swift – Part 2 – Connect to the iTunes Search API A Swift Tour Swift C

2014.6.24

2014.6.24任务 1.淘宝助理上架 2.宝贝参数制作 3.切片代码 3.3210潮流解读 完成:1.宝贝参数制作 2.切片代码 3.淘宝助理上架 未完成:3210潮流解读 做了二十款宝贝参数,分两个模板,1.包中包,就会有两个数据 2.一个包 需要静物图一张,数据,以及包包和模具的对比 B店标题图: 与c店标题图是有区别的, 今天上了三款包在淘宝助理,先传C店在穿B店,可以把C店的代码直接复制到B店,可以节省一定的时间 在编辑颜色的时候比如是埃菲尔黑→应该是货号HEI    (货号加大写的

2014.06.16任务

周五要提供一份可完成的SIT6000 今天需要做的就是 文件的上传.(服务器上还需要写几个页面,负责显示) 治疗数据的显示处理.图形的显示 2014.06.16 http上传文件还是有问题. 首次上传没问题,第二次出现问题 2014.06.16任务,布布扣,bubuko.com

每日一道题2014/7/24

Two Sum Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please no

2014.06.18前结束的阅读

<浪潮之巅> 作者: 吴军出版社: 电子工业出版社 <影响力> 作者: [美] 罗伯特·西奥迪尼 出版社: 中国人民大学出版社 <少有人走的路> 作者: [美] M·斯科特·派克 出版社: 吉林文史出版社 总结: 无论是哪一本书,都涉及到一个重要的问题,心智的成熟.无论是看待问题还是去解决问题,亦或是通过自己去影响别人,扩展自己的世界,都需要心智的成熟.而心智的成熟往往是一个痛苦的忍耐.就像一句话说的那样:每每到人生的十字路口,我知道正确的道路应该是哪一条,但是我从来不

WebQQ hash值获取 C#方法 2014/06/20

去年心血来潮,利用闲暇时间做了一个WebQQ的桌面软件,基本功能实现之后,就放那儿了.webQQ的协议时常更新,导致有些参数加密的方法要跟着更新,今天群里一朋友提供了一份最新的WebQQ hash的js,我转成了C#的方法,记在这里,希望对正在做webqq的朋友有所帮助. js方法 p=getqqhsahs(b,j) { for (var a = j + "password error", i = "", E = [];;) if (i.length <= a

#2014/7/24#常用log4j配置

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子: 一.log4j.properties ### 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ## log4j.category.org.zblog=ERROR,A1 log4j.category.org.zblog=INFO,A2 log4j.appender.A1=org.apache.log4j.ConsoleAppender ### 设置输出

杨帆之工作日志-2014.6.24

还有几天,自己已经工作两个月了,确切的从今天算,这是第39个工作日. 早就打算写点什么东西来记录自己的工作,自己的心情,自己的一些心得体会,可是总是觉得还不到时候,有些东西,没有沉淀的很好,有些事情,还没有想太明白,有些话,不知道该不该说. 也许这次也不是一个很好的时机,但是总是隐隐觉得必须安静下来写点什么东西了,两个月的时间,我还没有来得及抓住什么,怎么就溜走了呢,我想,再不写点什么,或许就再也写不出此时此地的感受了. 开始关注职场类型的文章了,就注意到了这么一句话,你第一次工作的单位在很大程