【问题标题】:Create action for a button inside collection view为集合视图内的按钮创建操作
【发布时间】:2018-10-08 04:16:28
【问题描述】:

我在故事板中创建了一个 UICollection 视图,我在单元格内创建了一个按钮,每当我点击按钮时,我都应该根据我的条件过滤数据,因此单元格内的每个按钮都会有不同的条件,谁能帮我解决这个问题??我正在使用 xcode 9 和 swift 4。

【问题讨论】:

  • 请添加您当前的代码

标签: ios swift xcode uicollectionview


【解决方案1】:

cellForItemAt:indexPath 数据源中使用按钮的addTarget 并添加一个selector,其中将定义按钮的操作。添加此按钮的标签,(添加与您的indexPath.row 相同的标签,您可以使用它来区分您的按钮和collectionview)

cell.yourButton.addTarget(self, action: #selector(yourButtonTapped), for: .touchUpInside)
cell.yourButton.tag = indexPath.row

现在添加该按钮的操作并在其中执行您需要的任何操作。

@IBAction func yourButtonTapped(_ sender: UIButton) {
    //perform action
}

【讨论】:

    【解决方案2】:

    创建自定义 UICollectionViewCell 类型。将 IBAction 连接到单元格。

    创建一个协议,让单元格通知集合视图用户点击了一个按钮。让操作将点击传递给代理。

    在您的cellForItemAt() 方法中,将视图控制器设置为委托。

    现在在您的视图控制器中根据需要处理点击。

    【讨论】:

      【解决方案3】:

      为目标 c 试试这个

      在 cellForRowAtIndexPath 处添加以下代码

      cell.btnOk.tag = indexPath.row ;
      [cell.btnOk addTarget:self action:@selector(OkBtnAction:) forControlEvents:UIControlEventTouchUpInside] ;
      

      比添加那个按钮的动作

      -(IBAction)OkBtnAction:(id)sender
      {
          UIButton* btn=(UIButton*)sender;
          NSLog(@"row: %ld",(long)btn.tag);
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        • 2017-12-26
        • 1970-01-01
        相关资源
        最近更新 更多