zoukankan      html  css  js  c++  java
  • 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];

        

    /*

     重新向数据源索取数据

     重新向数据源发送消息

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

     */

        

    }

  • 相关阅读:
    ZLL网关程序分析
    ZLL主机接口的信息处理流程
    TI Zigbee Light Link 参考设计
    基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2
    office excel 装Visual Studio后报错解决方案
    php随机生成验证码
    Mysql添加外键约束
    hdu 1232 畅通工程
    hdu 1162 Eddy's picture (Kruskal 算法)
    hdu 1102 Constructing Roads (Prim算法)
  • 原文地址:https://www.cnblogs.com/xgj0721/p/4340720.html
Copyright © 2011-2022 走看看