博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义tableViewCell的侧滑删除按钮
阅读量:7240 次
发布时间:2019-06-29

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

有时候客户会有一些特殊的要求,更改tableViewCell的侧滑删除按钮的样子就是其中之一,就像这样:

这个效果其实也不难,只需在自定义的cell里重写layoutSubviews方法就好,具体代码如下:

//修改删除模式的样式

-(void)layoutSubviews

{

    [super layoutSubviews];

    for (UIView *subView in self.subviews)

    {

        if([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")])

        {

            UIView *confirmView=(UIView *)[subView.subviews firstObject];

            //改背景颜色

            confirmView.backgroundColor=[UIColor colorWithWhite:0.898 alpha:1.000];

            for(UIView *sub in confirmView.subviews)

            {

                //修改字的大小、颜色,这个方法可以修改文字样式

                /*

                if ([sub isKindOfClass:NSClassFromString(@"UIButtonLabel")]) {

                    UILabel *deleteLabel=(UILabel *)sub;

                    deleteLabel.backgroundColor = [UIColor redColor];

                    //改删除按钮的字体大小

                    deleteLabel.font=[UIFont boldSystemFontOfSize:20];

                    //改删除按钮的文字

                    deleteLabel.text=@"嘿嘿";

                }

                 */

                //添加图片

                if ([sub  isKindOfClass:NSClassFromString(@"UIView")]) {

                    UIView *deleteView = sub;

                    UIImageView *imageView = [[UIImageView alloc] init];

                    imageView.image = [UIImage imageNamed:@"iconfont-zhuchang"];

                    imageView.frame = CGRectMake(CGRectGetMaxX(sub.frame) - 58, -5, 30, 30);

                    [deleteView addSubview:imageView];

                }

            }

            break;

        }

    }

}

这样你就成功的将那个红色背景颜色的delete按钮修改成了一张自定义的图片了。

不过细心的小伙伴一定会发现每次当你点击按钮的时候按钮都会短暂的出现白色的delete文字,别怕,咱们再重写一个方法就好:

#pragma mark 更改删除按钮文字(使文字为空)

-(NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexpath {

    return @"            ";

}

这样就解决了。

有时候也会有侧滑显示两个选项的要求,这个也很简单,在- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath;方法中添加UITableViewRowAction就行,具体的大家自己摸索一下就出来了。

转载于:https://www.cnblogs.com/Coder-DJ/p/5645392.html

你可能感兴趣的文章
使用HTML5新特性Mutation Observer实现编辑器的撤销和撤销回退操作
查看>>
Java可变参数传递中可以接收多个对象
查看>>
Python中的正则表达式(re)
查看>>
2016 新学++ , 回顾过去展望未来
查看>>
让你在DOS中任意切换目录
查看>>
较完整的轮播图特效
查看>>
微信公众开发接入服务器的接口配置信息
查看>>
deployment与Web应用程序部署
查看>>
详解iOS多图下载的缓存机制
查看>>
关于CAE的那点儿破事儿
查看>>
prometheus + grafana安装部署(centos6.8)
查看>>
排序算法之快速排序
查看>>
日志框架logj的使用
查看>>
架构师必看-架构之美第14章-两个系统的故事:现代软件神话(一)
查看>>
struts2从2.2.3升级到2.3.15.1步骤
查看>>
你所不了解的静态路由特点及配置
查看>>
37、pendingIntent 点击通知栏进入页面
查看>>
TCP为何采用三次握手来建立连接,若采用二次握手可以吗?
查看>>
Jfreet 自动删除生成的图片
查看>>
snmp
查看>>