【问题标题】:UITableView Edit/Done eventsUITableView 编辑/完成事件
【发布时间】:2010-12-14 21:30:47
【问题描述】:

是否有可以用来检测表格视图何时进入编辑状态的通知或委托方法?

我想要做的是检测表格正在编辑,然后显示一个额外的行,上面写着“添加新项目”或类似的东西。

我尝试在加载视图控制器时在数组末尾添加“添加新项目”行,然后根据 [tableView isEditing] 是否为真,返回 [array count](当我编辑)或[数组计数] - 1(当我不编辑时)。

有什么想法吗? Apple 以什么方式编辑表格中的项目并允许删除?

【问题讨论】:

    标签: uitableview delegates notifications editing


    【解决方案1】:

    我找到了。覆盖此方法:

    - (void)setEditing:(BOOL)editing animated:(BOOL)animated{
        [super setEditing:editing animated:animated];
    
        // do something
    }
    

    【讨论】:

      【解决方案2】:

      您可以将 IBAction 作为选择器添加到您的 editButton。当点击 editButton 时,将调用该方法。示例:

      -(void)viewDidLoad
      {
      // ...
      [self.editButtonItem setAction:@selector(editAction:)];
      [self.navigationItem setRightBarButtonItem: self.editButtonItem];
      
      // .. your code
      
      }
      
      -(IBAction)editAction:(id)sender
      {
          UIBarButtonItem * button = ((UIBarButtonItem*)sender);
      
          if (!self.tableView.editing)
          {
              [self.tableView setEditing:YES animated:YES];
              [button setTitle:@"Done"];
              // do your stuff...
          }
          else
          {
              [button setTitle:@"Edit"];
              [self.tableView setEditing:NO animated:YES];
              // do your stuff...
          }
      }
      

      如果你有自己的 UIButton 并且没有使用标准的 self.editButtonItem 然后使用 [yourButton addTarget:self action:@selector(editAction:) forControlEvents:UIControlEventTouchUpInside]; 并在 editAction: 方法中将其作为 UIButton* 处理

      【讨论】:

        猜你喜欢
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 2023-03-30
        • 2015-08-14
        • 2022-08-02
        • 2011-06-15
        相关资源
        最近更新 更多