目录:

一、tableview的编辑模式-增删改查

二、不使用继承创建tableview

三、accessoryView辅助视图

回到顶部

一、tableview的编辑模式-增删改查

[1-contact-edit]

增:

1对数据模型增加数据

self.contacts addObject:

2对tableview增加行

self.tableView insertRowsAtIndexPaths

删改查:

tableview进入编辑模式

1如何设置编辑模式UITableView.editing

2能干什么:添加、删除、移动

这些都是对cell进行的操作

3进入编辑模式的快捷方式是把viewDidLoad中的self.editButtonItem显示出来,一旦按了按钮,tableview就会进入编辑模式,默认情况下是删除模式

4如果需要达到删除的效果需要进行两问一响应,两个问题可以不回答,但必须有响应

两问:

1)第一问哪些行可以进行编辑,哪些不能

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

2)第二问哪些行可以进行删除,哪些行可以进行插入

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

3)一响应当用户选择了行进行删除或插入,如何处理

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

回到顶部

二、不使用继承创建tableview

[2-tableView]

并提供三问一响应的链接dataSource和delegate到要提供数据的viewcontroller,这个viewcontroller要遵守detaSource这个协议

- (void)viewDidLoad
{
    [super viewDidLoad];
    UITableView *tableView = [[UITableView alloc] init];
    tableView.frame = CGRectMake(160, 42, 122, 322);
    tableView.dataSource = self;
    [self.view addSubview:tableView];
    // Do any additional setup after loading the view, typically from a nib.
}

静态的tableview

分区和行数都是固定的,如果用代码实现都是直接写死的。

回到顶部

三、accessoryView辅助视图

是tableview中cell的子试图中的一个,

有哪些类型:iOS6之前有4种iOS7增加了一种,

干什么用呢?触发高级事件

//返回cell数据
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text = @"ddd";
    //设置辅助视图  也就是cell右边的那个视图
    
    if (indexPath.row == 0) {
        //开关
        cell.accessoryView = [[UISwitch alloc] init];
    }else{
        cell.accessoryType = UITableViewCellAccessoryDetailButton;
    }
    return cell;
}
//点击cell之后调用的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"+++");
}
//点击辅助视图调用的方法
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"---");
}

作业:

1. 在一个界面上有两个TableView, 其中一个显示城市列表,如:北京,上海, 广州..,另一个显示用户选中的那个城市的行政区列表,如: 东城,西城,…, 当用户选中了某个行政区,界面上的一个TextView就显示此行政区的简介。

数据模型自己设计。

2. TMusic的设置界面,根据给的资源包高仿QQ音乐的设置界面。

补充:

UI控件用weak,NSString用copy,其他对象一般用strong

tableviewcell的高度有一个代理方法来调

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

字符串追加

cell.detailTextLabel.text = [[contact.phoneName stringByAppendingString:@"\t"] stringByAppendingString:contact.iphone];

//更新界面

NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.contacts.count -1 inSection:0];

[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

07-UIKit(tableview的编辑模式、accessoryView)的更多相关文章

  1. iOS UIKit:TableView之编辑模式(3)

    一般table view有编辑模式和正常模式,当table view进入编辑模式时,会在row的左边显示编辑和重排控件,如图 42所示的编辑模式时的控件布局:左边的editing control有表 ...

  2. ios之UITableViewController(二) tableView的编辑模式

    tableView的编辑模式 表视图可以进入编辑模式,当进入编辑模式就可以进行删除.插入.移动单元等操作 效果图: 让表视图进入编辑模式,进入编辑模式的方法有两种,一种是使用导航栏的edit 按钮,另 ...

  3. IOS第13天(3,私人通讯录,登陆状态数据存储,数据缓存, cell的滑动删除,进入编辑模式,单个位置刷新 )

    *****联系人的界面的优化 HMContactsTableViewController.m #import "HMContactsTableViewController.h" # ...

  4. UITableView编辑模式大全解

    1.UITableView 的编辑模式 进入编辑模式 代码体现 // 设置 editing 属性 tableView?.editing = true // 这个设置的时候是有动画效果的 tableVi ...

  5. IOS开发学习笔记032-UITableView 的编辑模式

    UITableView 的三种编辑模式 1.删除 2.排序 3.添加 进入编辑模式,需要设置一个参数 - (IBAction)remove:(UIBarButtonItem *)sender { NS ...

  6. iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除

    首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...

  7. IOS第七天(6:UiTableView编辑模式, 拖动位置 ,滑动删除)

    **********UiTableView编辑模式, 拖动位置 ,滑动删除 #import "HMViewController.h" @interface HMViewContro ...

  8. UITableView的编辑模式

    UITableView可以分普通模式和Editing模式两种,这里我们着重讨论Editing模式,Editing模式中又分三种操作:Insert.Delete. Reallocted.Insert和D ...

  9. UITableView 编辑模式(增加-删除-移动---自定义左滑 title)

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

随机推荐

  1. config -导航

    在config进行中配置 1在config中添加SITmap  <siteMap enabled="true" defaultProvider="UserSiteM ...

  2. JQuery中Checkbox的一些功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. ppt类似工具AxeFile使用心得

    一个所谓的傻瓜式过渡效果自动生成工具.定义好展示窗口大小,加入时序.所谓的闪烁效果,也是相当的滑稽. 是一个非专业的简单的快速PPT工具. 但是体现的确是扁平化的设计思路,很值得深思. ------ ...

  4. C#线程应用实例(part1) 之 BeginInvoke和EndInvoke

    最近这个公司是做 winfrom 开发的 , 这段时间就好好的学学WCF , 公司框架什么的自己去琢磨! 这里主要写一些 winfrom 中 用到的一些陌生 技术 1.BeginInvoke  以前B ...

  5. HTML5 总结-Web存储-7

    HTML 5 Web 存储 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 ses ...

  6. PHP学习建议(来自老手)

    框架太多了,有一个用着,先用熟练,因为框架思想区别不大. 用熟悉一个,再看其他,就容易多.看那么多,没有一个熟悉的,还是什么也不知道. 框架还是要用熟悉才行,然后才是产品如何设计,mysql性能真的有 ...

  7. vagrant 使用方法

    0.介绍 Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,"代码在我机子上运行没有问题"这种说辞将 ...

  8. XML 反序列化为Model

    什么也不多说,直接贴代码 需要反序列的XML <?xml version='1.0' encoding='utf-8' ?> <GetCitiesListResponse> & ...

  9. Java class文件分析工具 -- Classpy

    Classpy Classpy是一个图形化的class文件分析工具,功能和javap类似,界面主要參考了Java Class Viewer: 为什么要又一次创造轮子? 写这个工具花了将近一周的时间.那 ...

  10. js php xmlrequest 上传图片

    本来想用插件上传图片的,后来自己写了一个简单的js实现异步的图片上传,不多说上代码很easy upload.php <?php if(isset($_FILES["myfile&quo ...