首页 > 其他 > 详细

UITableView与UIAlertView的 Delegate方法实现

时间:2015-03-15 23:32:05      阅读:280      评论:0      收藏:0      [点我收藏+]

一 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];

    

/*

 重新向数据源索取数据

 重新向数据源发送消息

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

 */

    

}

 

UITableView与UIAlertView的 Delegate方法实现

原文:http://www.cnblogs.com/xgj0721/p/4340720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!