博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios-表视图-demo7-cell的编辑
阅读量:6601 次
发布时间:2019-06-24

本文共 4222 字,大约阅读时间需要 14 分钟。

////  RootTableViewController.m//  editcell////  Created by  liyang on 14-4-29.//  Copyright (c) 2014年 liyang. All rights reserved.//#import "RootTableViewController.h"@interface RootTableViewController ()@end@implementation RootTableViewController- (id)initWithStyle:(UITableViewStyle)style{    self = [super initWithStyle:style];    if (self) {                    }    return self;}- (void)viewDidLoad{    [super viewDidLoad];        _fontarrary=[NSMutableArray arrayWithArray:[UIFont familyNames]];     self.navigationItem.rightBarButtonItem=self.editButtonItem;//这个是给这个导航控制器加上一个按钮,并且这个按钮还是主动调用了下面-(void)setEditing:(BOOL)editing animated:(BOOL)animated这个方法,这个方法和UITableView有个同名方法,但是是不一样的。调用这个功能就是这个editButtonItem来实现的}-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
//这个是继承了父类视图控制器的方法 if (self.tableView.editing) { [self.tableView setEditing:NO animated:YES]; }else { [self.tableView setEditing:YES animated:YES]; }}//使我们的表视图处于编辑或者非编辑状态- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
//这个表示哪些行可以进行编辑(增,删,移动) NSLog(@"canEditRowAtIndexPath"); if (indexPath.row==0) { return NO; } return YES;}- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
//通过代理方法来进行判断编辑风格 if (indexPath.row==1) { NSLog(@"UITableViewCellEditingStyleInsert"); return UITableViewCellEditingStyleInsert; } NSLog(@"UITableViewCellEditingStyleDelete"); return UITableViewCellEditingStyleDelete;}//编辑的样式int count=0;// Override to support editing the table view.- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ if (editingStyle == UITableViewCellEditingStyleDelete) { [_fontarrary removeObjectAtIndex:indexPath.row];//删除的时候要先删除数据 [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; } else if (editingStyle == UITableViewCellEditingStyleInsert) { NSString *font_new=[NSString stringWithFormat:@"newfont%d",count]; [_fontarrary insertObject:font_new atIndex:indexPath.row+1]; NSIndexPath *_aaindexpath=[NSIndexPath indexPathForRow:indexPath.row+1 inSection:indexPath.section]; [tableView insertRowsAtIndexPaths:@[_aaindexpath] withRowAnimation:UITableViewRowAnimationRight]; count++; }}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [_fontarrary count];}- (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]; UILabel *lable=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; lable.backgroundColor=[UIColor purpleColor]; lable.tag=101; [cell.contentView addSubview:lable]; } UILabel *lable=(UILabel *)[cell.contentView viewWithTag:101]; lable.text=_fontarrary[indexPath.row]; return cell;}- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath{ NSString *text=[_fontarrary objectAtIndex:fromIndexPath.row]; [_fontarrary removeObjectAtIndex:fromIndexPath.row]; [_fontarrary insertObject:text atIndex:toIndexPath.row];}//移动结束后,为的是修改数据// Override to support conditional rearranging of the table view.- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"canMoveRowAtIndexPath"); // Return NO if you do not want the item to be re-orderable. return YES;}//总结:首先cell展示出来的时候就会判断这个cell是否可以编辑,然后编辑的时候就会先判断是否可编辑,然后调用判断此cell的编辑风格,然后判断此 cell是否可以移动,咋一看,为毛多此一举,在出现cell的时候就去判断是否可编辑,我想,我认为是出于数据结构中的,空间换取效率吧(纯属揣测),最后完成提交编辑的时候还会调用一次,是否可编辑。@end

 

转载于:https://www.cnblogs.com/liyang31tg/p/3700268.html

你可能感兴趣的文章
ntp服务器的搭建
查看>>
我的友情链接
查看>>
sysstat 安装
查看>>
《你必须知道的.NET》 - 书摘精要
查看>>
六、nginx搭建织梦DedeCms网站
查看>>
Tair学习小记
查看>>
网卡绑定(服务器&&交换机),缓存服务器Squid架构配置
查看>>
web网站加速之CDN(Content Delivery Network)技术原理
查看>>
Redis 数据结构-字符串源码分析
查看>>
打算写一款框架来提高自己 写个结构吧
查看>>
这世界就是,一些人总在昼夜不停地运转,而另外一些人,起床就发现世界已经变了。...
查看>>
网页设置
查看>>
Ubuntu 操作系统操作
查看>>
vue学习:10、第一个项目,实践中遇到的问题
查看>>
Linux下修改Mysql的用户(root)的密码
查看>>
sed的基本用法
查看>>
一个不错的shell 脚本入门教程
查看>>
JVM、GC相关资料
查看>>
dell r620装cenots7遇到的问题
查看>>
Ansible之playbook的使用
查看>>