UITableView与UIAlertView的 Delegate方法实现

一 UITableView Delegate 方必须遵循 UITableViewDelegate协议

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 这句是定义cell右边的尖角号

#pragma mark - 代理方法

#pragma mark 返回indexPath这行cell的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

//    return 70 + indexPath.row * 20;

return 70;    该方法直接返回cell的高度

}

#pragma mark 选中了某一行的cell就会调用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath//本句实现点击行要执行的方法

{

// 0.取出所点击这行的产品对象

Shop *shop = _shops[indexPath.row];

// 1.创建弹框

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"产品信息展示" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

// 设置样式(一个明文文本框)

alert.alertViewStyle = UIAlertViewStylePlainTextInput;

// 设置文本框的默认文字

[alert textFieldAtIndex:0].text = shop.name;

// 2.显示弹框

[alert show];

// 3.绑定行号 为 alertview的tag

alert.tag = indexPath.row;

}

二 UIAlertView 的Delegate方法

  // 2.2.刷新表格

//    [_tableView reloadData]; // 整体刷新(每一行都会刷新)

    

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];

    

    NSArray *paths = @[indexPath];

    [_tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationLeft];

#pragma mark - alertview的代理方法

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex//监听确认按钮,实现修改方法,通过传UIAlertView tag

{

if (buttonIndex == 0) return;

// 1.取出文本框的文字

NSString *text = [alertView textFieldAtIndex:0].text;

// 2.将文字更新到对应的cell上面去

// 2.1.修改对应位置的模型数据

int row = alertView.tag; // alertView的tag就是行号

Shop *shop = _shops[row];

shop.name = text;

// 2.2.刷新表格

//    [_tableView reloadData]; // 整体刷新(每一行都会刷新)

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];

NSArray *paths = @[indexPath];

[_tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationLeft];

/*

重新向数据源索取数据

重新向数据源发送消息

重新调用数据源的方法,根据返回值决定显示什么数据

*/

}

时间: 2024-12-14 18:04:33

UITableView与UIAlertView的 Delegate方法实现的相关文章

UIAlertView的使用方法

UIAlertView的使用方法 1. 最简单的用法 UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"这是一个简单的警告框!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; [alert release]; 2. 为UIAlertView添加多个按钮 U

【iOS开发每日小笔记(四)】iOS 7中如何除去UIAlertView 规避delegate对象销毁后接收消息的crash

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在本文的评论

UIScrollView的delegate方法妙用之让UICollectionView滑动到某个你想要的位置

一个UICollectionView有好多个cell,滑动一下,谁也不知道会停留在哪个cell,滑的快一点,就会多滑一段距离,反之则会滑的比较近,这正是UIScrollview用户体验好的地方. 如果想要UICollectionView停留到某个cell的位置,可以用 - (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPos

jQuery事件绑定on()、bind()、live()与delegate() 方法详解

jQuery事件绑定有四个方法,对应为on,off,bind,unbind,delegate,undelegate,live,die 比较和联系: 1.bind()函数只能针对已经存在的元素进行事件的设置:但是live(),on(),delegate()均支持未来新添加元素的事件设置: 2.bind()函数在jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以 用来代替live()函数,live()函

jQuery 事件 - delegate() 方法

<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("div").delegate("p","click"

jQuery事件绑定on()、bind()与delegate() 方法详解

本文转载:啃了一段日子的js相关了,学的过程中发现在jQuery中绑定事件时,有人用bind(),有人用on(),有人用delegate(),还有人用live(),看代码的时候觉得都实现功能了也就掀过去了,只是一直没完全弄懂之间的区别,于是今天查了下资料,自己做个总结. 之所以有这么多类型的绑定方法,是因为jQuery的版本更新的原因,如on()方法就是1.7以后出现的. jQuery的事件绑定api页面上,提到live()方法已经过时,不建议使用.所以这里我们主要就看下以下三个方法:bind(

jQuery 事件 - delegate() 方法 和live()方法

当点击鼠标时,隐藏或显示 p 元素: $("div").delegate("button","click",function(){ $("p").slideToggle(); }); delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素). 向未来的元素添加事件处

UI细节点滴-UIScorllView和UITableView/UITextView拖动退出键盘方法

在实际开发中,我们常常会用到UIScrollView以及它的子类控件UITableView/UITextView来进行某些操作需要唤出键盘.通常调出键盘的方式是使相应的控件成为事件的第一响应者,例如在一个视图加载完成后的ViewDidLoad方法中,调出键盘: - (void)viewDidAppear:(BOOL)animated {   [super viewDidAppear:animated];   [self.textView becomeFirstResponder];    //

jQuery(一)delegate() 方法

定义和用法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素). 语法 $(selector).delegate(childSelector,event,data,function) 参数 描述 childSelector 必需.规定要附加事件处理程序的一个或多个子元素. event 必需.规定附加到元素的一个或多个事件. 由空