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(0, 64, 375, [UIScreen mainScreen].bounds.size.height - 64) 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块里面进行我们想要添加给相对应按钮的方法, 就是这么简单, 哈哈.

  好了各位, 今天就先写这么多了, 有时间了我再来这里分享哈, 一些新的东西, 有时间我并没有注意到, 不过我会继续努力的, 加油!

时间: 2024-10-29 07:33:12

UITableView滑动按钮的操作的相关文章

5个基于css3超炫的鼠标滑动按钮动画

今天给大家分享5个基于css3超炫的鼠标滑动按钮动画.这5个按钮鼠标经过的时候有超炫的动画效果.这5个按钮适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="wrap"> <a href="#" class="btn-slide"><span class=&q

适合移动设备的jQuery滑动按钮插件

这是一款非常实用的jQuery滑动按钮插件.该滑动按钮插件可以将input元素转换为滑动按钮样式.插件中使用javascript来控制滑动按钮的滑动,样式使用纯CSS来制作. 该jQuery滑动按钮插件可以在支持jQuery 2的浏览器上工作,IE6-8不支持该插件. IE9不支持CSS transitions,在IE9上不会有动画效果. 该滑动按钮支持Pointer.触摸屏和鼠标点击. 在线演示:http://www.htmleaf.com/Demo/201502241416.html 下载地

自己开发的 vue 滑动按钮组件 vue-better-slider

写在前面的 这个人第一次尝试开发并发布一个 vue 的组件,该组件实现了类似 ios 手机淘宝客户端 -> 消息界面中消息的滑动删除功能等,如下为该组件的文档. 一个 Vue 的滑动按钮组件,有关滑动方面的处理借鉴 better-scroll 的实现. 在线例子 起步 安装 npm i --save vue-sliding-button 引入 import Vue from 'vue' import SlidingButton from 'vue-sliding-button' Vue.use(

iOS开发-UITableView滑动视差

视差滚动是指让多层背景以不同的速度移动,形成立体的运动效果,在Web上应用的比较多,App中倒是见的相对比较少,主要在UITableView中的应用的比较多,尤其是当整个UITableViewCell的背景是图片的时候,描述内容较少,滑动视差可以增强视觉效果,可以考虑使用,先来简单的看一下效果: 实现起来也比较简单,UITableView定义: #pragma mark - UITablViewDataSource -(NSInteger)numberOfSectionsInTableView:

滑动按钮

public class WiperSwitch extends View {     private Bitmap selectedBitmap;//滑动选中开关的背景     private Bitmap uncheckedBitmap;//滑动未选中开关的背景     private Bitmap switchBitmap;//开关的背景     private Bitmap slidBitmap;//滑动块的图片对象     private int MAX_Left;//left的最大值

iOS UITableView 滑动时顺序混乱或多个cell内容相同

在使用UITableView时,由于cell的重用机制,在获取后台数据并填充cell时,会发生cell重复出现,界面紊乱.但这仅仅在拥有多个section的情况下会出现,没有滚动的时候,单个section的row显示的都是正确的. 以下是示例代码: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath //这个方法是UITableView 的 Da

js实例6滑动按钮

<style type="text/css">*{ margin:0px auto; padding:0px}#wai{ width:100%; height:500px;}#left{height:500px; background-color:#63C; float:left}#right{ height:500px; background-color:#FC3; float:left}#anniu{ width:50px; height:50px; backgroun

UITableView滑动动画+FPSLabel

主要使用了tableView的代理方法 行将要显示的时候 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(nonnull NSIndexPath *)indexPath 代码: cell.contentView.alpha = 0.3; CGAffineTransform transformScale = CGAffineTransformM

android 自定义滑动按钮

第一接触公司项目就让我画页面,而且还涉及到我最讨厌的自定义view  但是没办法,讨厌也必须要做啊,经过百度上资源的查找,终于写出了一个滑动控件.废话不多说,上代码. package com.etong.cpms.widget; import com.etong.cpms.activity.R; import android.content.Context;  import android.graphics.Bitmap;  import android.graphics.BitmapFacto