iOS 修改 TableView 的 delete 按钮

在iOS 6 以前重写

-(void)willTransitionToState:(UITableViewCellStateMask)state ,发现iOS7 以前的方法不管用了

iOS7 下

在自定义cell里重写

-(void)willTransitionToState:(UITableViewCellStateMask)state{

[super
willTransitionToState:state];

if((state &
UITableViewCellStateShowingDeleteConfirmationMask) ==
UITableViewCellStateShowingDeleteConfirmationMask){

//        [self recurseAndReplaceSubViewIfDeleteConfirmationControl:self.subviews];

[self performSelector:@selector(recurseAndReplaceSubViewIfDeleteConfirmationControl:)
withObject:self.subviews
afterDelay:0];

}

}

-(void)recurseAndReplaceSubViewIfDeleteConfirmationControl:(NSArray*)subviews{

NSString *delete_button_name =
@"delete";

for (UIView *subview
in subviews)

{

/**

*  iOS 6 以前

*/

if ([NSStringFromClass([subview
class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"])

{

/**

将添加一个视图来覆盖默认的控制使用的图像有一个透明的背景

*/

UIView *backgroundCoverDefaultControl = [[UIView
alloc] initWithFrame:CGRectMake(0,0,
64, 33)];

[backgroundCoverDefaultControl setBackgroundColor:[UIColor
whiteColor]];

[[subview.subviews
objectAtIndex:0] addSubview:backgroundCoverDefaultControl];

UIImage *deleteImage = [UIImage
imageNamed:delete_button_name];

UIImageView *deleteBtn = [[UIImageView
alloc]initWithFrame:CGRectMake(0,
0,deleteImage.size.width, deleteImage.size.height)];

[deleteBtn setImage:[UIImage
imageNamed:delete_button_name]];

[[subview.subviews
objectAtIndex:0] addSubview:deleteBtn];

}

/**

*  ios7

*/

if ([NSStringFromClass([subview
class]) isEqualToString:@"UITableViewCellDeleteConfirmationButton"])

{

UIButton *deleteButton = (UIButton *)subview;

[deleteButton setImage:[UIImage
imageNamed:delete_button_name] forState:UIControlStateNormal];

[deleteButton setTitle:@""
forState:UIControlStateNormal];

[deleteButton setBackgroundColor:[UIColor
clearColor]];

for(UIView* view
in subview.subviews){

if([view isKindOfClass:[UILabel
class]]){

[view removeFromSuperview];

}

}

}

if ([NSStringFromClass([subview
class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"])

{

for(UIView* innerSubView
in subview.subviews){

if(![innerSubView
isKindOfClass:[UIButton class]]){

[innerSubView removeFromSuperview];

}

}

}

if([subview.subviews
count]>0){

[self
recurseAndReplaceSubViewIfDeleteConfirmationControl:subview.subviews];

}

}

}

时间: 2024-10-30 09:32:36

iOS 修改 TableView 的 delete 按钮的相关文章

IOS_修改TableView的删除按钮的文本

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditin

ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)

UITabBarItem在开发中非常的常用了它可以用来设置字体颜色及图片的设置等等,下面我们来看一篇关于ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)的例子,具体的细节如下所示. 1,tabBarItem图片的推荐尺寸和最大支持尺寸 下面是标签栏(UITabBar)中tab按钮图标分别在1x.2x.3x下不会压缩变形的尺寸: @1x : 推荐 25 x 25   (最大: 48 x 32)@2x : 推荐 50 x 50   (最大: 96 x 64)@

iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题

[原]iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题 2014-10-31阅读202 评论0 转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容器是UITableViewCellScrollView, ios6的则是UITableViewCellContentView.点击效果应该是被ScrollView的触摸延

iOS TableViewController内修改TableView的style属性

1. TableView的style属性默认为只读(readonly)属性, 一般在创建TableViewController时设置: UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; TableView样式为: 2. 若要在TableViewController内修改TableView的style属性, 需进行如下设置

自定义UITableViewCell上的delete按钮

滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚至可以自定义删除按钮的形状. //通过UITableViewDelegate方法可以实现删除 tableview中某一行 //滑动删除 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAt

IOS中TableView的用法

IOS中TableView的用法 一.UITableView 1.数据展示的条件 1> UITableView的所有数据都是由数据源(dataSource)提供的,所以要想在UITableView展示数据,必须设置UITableView的dataSource数据源对象 2> 要想当UITableView的dataSource对象,必须遵守UITableViewDataSource协议,实现相应的数据源方法 3> 当UITableView想要展示数据的时候,就会给数据源发送消息(调用数据源

iOS7 修改导航系统默认返回按钮文字及颜色

//iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = item; [[UINavigationBar appearance] setTintColor:[UIColor

iOS 在TableView的Cell之间设置空白间隔空间

1.设置section的数目,即是你有多少个cell - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 3; // in your case, there are 3 cells } 2.对于每个section返回一个cell - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)secti

IOS 改变Navigation的返回按钮

两个办法: 1, 手动为每一个UIViewController添加navigationItem的leftButton的设置代码 2,为UINavigationController实现delegate,在pop和push的时候改变当前和上一页的navigationItem.title 以下是封装的一些基础方法,供参考: + (void) navigationItem:(UINavigationItem*)navigationItem setTitle:(NSString*)title; + (vo