UITableView滑动按钮的操作
一.开题
首先先创建工程, 创建工程的步骤就不一一介绍了, 前面有提过, 接下来是要在VC上创建一个tableview当然你也可以选择一个类继承于UITableView两者都可以, 这要看个人喜欢了, 这些都不是很重要, 重要的在后面呢, 也是我要说的, 敬请期待吧!
tableview上传统的delete键是这个样子的, 也就是在滑动cell的时候出来的按钮:

当然这样并不能满足我们的需求, 有时间我们还想要让delete显示为中文样式或者改变显示的文字, 那我们要怎么做呢, 不要着急下面我就来告诉大家, 首先我们应该让我们的tableview遵循代理和datasource方法(继承与tableview除外), 代码是这样字的:
@interface MainViewController ()<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, strong) UITableView *tableView;
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.automaticallyAdjustsScrollViewInsets = NO;
// Do any additional setup after loading the view.
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(, , , [UIScreen mainScreen].bounds.size.height - ) style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.view addSubview:_tableView];
二.delete键文字样式的改变
当然这样也许就该有人问了, 那么我们要如何改变delete显示的字体样式呢, 下面我就来告诉大家, 首先我们应该执行delete中的一个方法, 如下:
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
看到这个方法, 我们很自然的就想到他的返回值是一个字符串, 那么即使我们想要的了, 修改完的代码和效果如下所示:
#pragma UITableViewDelegate
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
return @"删除";
}
效果:

要是仅仅是这样, 我相信还有很多朋友还是难以接受的把, 那么就请接着往后看啦, 在手机或者一些应用中, 我们会经常看到在滑动cell的时候, 出来的不仅仅是删除按钮那么简单, 有时间还会有添加, 删除, 拨号等按钮, 那么这些都是怎么实现呢, 在我还不知道怎么做的时候, 我也是拼命的找三方, 感觉好好奇啊, 我相信很多朋友和我有一样的感觉, 对吧? 嘿嘿!
三.delete按键的替换(多个按钮的方法)
其实这些也并不是很难的, 在ios8之后协议中又多了一个方法来帮助我们定义这项功能, 我们只需要利用一个方法和一个类来实现创建按钮, 然后加入数组返回就行了, 这项功能也就变得不是很难了, 下面我就给大家说说该怎么实现吧, 嘿嘿!
方法名如下所示:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
具体实现过程请看以下代码:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewRowAction *phoneBtn = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"拨号" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
}];
UITableViewRowAction *moreBtn = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
}];
UITableViewRowAction *smileBtn = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"微笑" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
}];
return @[phoneBtn, moreBtn, smileBtn];
}
效果如下:
就是这样我们就可以实现我们想要的效果了, 也省去了不少自定义所耽误的时间, 不过当然自定义的还是可维护性比较高的, 一些东西还是可以进行调整的, 但是如果没有什么特殊要求的时候, 用这个系统原生的api还是可以省去不少时间的, 当然如果仅仅是这样有的友友就该问了, 那相对应的方法在哪里实现呢, 这个既然有按钮那么就一定留有接口来实现方法, 在每个button后面都有一个block, 我们可以在block块里面进行我们想要添加给相对应按钮的方法, 就是这么简单, 哈哈.
好了各位, 今天就先写这么多了, 有时间了我再来这里分享哈, 一些新的东西, 有时间我并没有注意到, 不过我会继续努力的, 加油!
UITableView滑动按钮的操作的更多相关文章
- Android判断Touch为滑动事件还是操作控件
Android判断Touch为滑动事件还是操作控件 因为在项目中要判断WebView是否处于滚动状态,但它不像ListView有onScrollStateChanged方法来监听,要实现就得手动监听它 ...
- lhgdialog: iframe页面里面的,确定,关闭、取消按钮的操作
lhgdialog: iframe页面里面的,确定,关闭.取消按钮的操作 如果你正在用lhgdialog,用他人iframe,或者 content:'url:http://www.baidu.com/ ...
- css 滑动按钮样式
<div class="pub_switch_box"> <input type="checkbox" id="pub_switch ...
- 5个基于css3超炫的鼠标滑动按钮动画
今天给大家分享5个基于css3超炫的鼠标滑动按钮动画.这5个按钮鼠标经过的时候有超炫的动画效果.这5个按钮适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之 ...
- 利用纯CSS美化checkbox和radio和滑动按钮的实现
W3C提供的CheckBox和radio的原始样式非常的丑,而且在不同的额浏览器表现还不一样,使用常规的方法添加样式没法进行修改样式 一, 单选按钮 <html> <head> ...
- Android自定义Seekbar滑动条,Pop提示跟随滑动按钮一起滑动
由于项目需要做出此效果,自定义写了一个. 效果图 思路: 原始的seekbar只有滑动条并没有下方的提示文字,所以我们必须要继承Seekbar重写这个控件. 代码: 在values文件夹下新建attr ...
- 一个 Vue 的滑动按钮组件
git 地址:https://github.com/SyMind/vue-sliding-button vue-better-slider 一个 Vue 的滑动按钮组件,有关滑动方面的处理借鉴 bet ...
- 自己开发的 vue 滑动按钮组件 vue-better-slider
写在前面的 这个人第一次尝试开发并发布一个 vue 的组件,该组件实现了类似 ios 手机淘宝客户端 -> 消息界面中消息的滑动删除功能等,如下为该组件的文档. 一个 Vue 的滑动按钮组件,有 ...
- python+selenium文本框对象以及按钮对象操作
文本框对象 from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() # 指定和打开浏览器ur ...
随机推荐
- ARM Cortex-M
振荡周期.时钟周期.机器周期.指令周期 一个机器周期包含12个振荡周期或6个时钟周期 指令的执行时间称作指令周期(单.双.四周期) (1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的 ...
- [Python爬虫笔记][随意找个博客入门(一)]
[Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...
- Jdbc 事务
package com.j1; import java.sql.Connection; import java.sql.SQLException; import com.mysql.jdbc.Prep ...
- 前端笔试题目总结——应用JavaScript函数递归打印数组到HTML页面上
数组如下: var item=[{ name:'Tom', age:70, child:[{ name:'Jerry', age:50, child:[{ name:'William', age:20 ...
- ActiveReport 9手把手搭建环境及实战
本文借鉴葡萄城空间产品,纯属分享,无任何营利目的 下载ActiveReports 9 专业版 打开下面的网站,点击立即下载,请您填写真实电子邮件地址,以获取ActiveReports产品试用版---系 ...
- 如何获取外网Ip呢, 终于找到方法了
临时更换网址:http://20140507.ip138.com/ic.asp 这个网址能同时获取ip和城市名字 上面的网址如何来的呢,其实很简单,随便打开一个获取Ip的网站,比如http://www ...
- INVALID_USER_SCODE问题的解决办法
在用高德地图API的时候,还会遇见一个为题,就是总是提示:INVALID_USER_SCODE.当遇见这个问题的时候,一般的问题都是,注册key之后没有十分钟就开始使用这个key值了.另外一种情况就是 ...
- shell的string operator
${varname:-word} 如果varname存在并且不为nil,那么返回varname的值,否则返回word.这个常用来在varname未定义时返回默认值 ${varname:=word} 如 ...
- TreeMap Red-Black tree
本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程. 总体介绍 之所以把TreeSet和TreeM ...
- Javascript 开发IDE
俗话说,工欲行其事,必先利其器.开发的时候有一款好的IDE,对开发效率的提升是非常帮助的,在此强烈推荐Webstorm,官网网址http://www.jetbrains.com/webstorm/ 主 ...