如何在iOS中设置MGSwipeButton的目标

时间:2016-03-21 10:23:34

标签: ios uitableview

您好我在UITableview使用MGSwipeTableCell来刷我的单元格。刷卡正在工作。我在CellforRowAtIndex中添加了这些行,如下所示

 //configure left buttons
cell.leftButtons = @[[MGSwipeButton buttonWithTitle:@"Approve" icon:[UIImage imageNamed:@"approveTick"] backgroundColor:[UIColor colorWithRed:43.0/255 green:178.0/255 blue:157.0/255 alpha:1.0]]
                     ];

cell.leftSwipeSettings.transition = MGSwipeTransition3D;


//configure right button
cell.rightButtons=@[[MGSwipeButton buttonWithTitle:@"Reject" icon:[UIImage imageNamed:@"rejectDel"] backgroundColor:[UIColor colorWithRed:243.0/255 green:104.0/255 blue:97.0/255 alpha:1.0]]
                    ];

cell.rightSwipeSettings.transition=MGSwipeTransition3D;

现在我想为这两个按钮设置目标点击事件。但我不明白如何做到这一点。请帮我解决一下这个。 感谢

3 个答案:

答案 0 :(得分:0)

-(BOOL)swipeTableCell:(MGSwipeTableCell *)cell tappedButtonAtIndex:(NSInteger)index direction:(MGSwipeDirection)direction fromExpansion:(BOOL)fromExpansion {
    NSLog(@"tappedButtonAtIndex: %i",index);
    NSIndexPath *indexPath = [Claim_tableview indexPathForCell:cell];
    NSLog(@"CellindexPath: %i",indexPath);
    return YES;
}

此代理方法将在您点击按钮时调用另外请勿忘记添加' MGSwipeTableCellDelegate'

答案 1 :(得分:0)

为了监听按钮点击事件,您可以实现可选的MGSwipeTableCellDelegate,或者如果您懒得这样做,MGSwipeButton类会附带一个便捷块回调;)

目标-C

[MGSwipeButton buttonWithTitle:@"More" backgroundColor:[UIColor lightGrayColor] callback:^BOOL(MGSwipeTableCell *sender) {
      NSLog(@"Convenience callback for swipe buttons!");
}]

夫特

MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor(), callback: {
  (sender: MGSwipeTableCell!) -> Bool in
      println("Convenience callback for swipe buttons!")
      return true
})

答案 2 :(得分:0)

第一个答案是正确的GitHub MGSwipeTableCell中的说明 但对我而言,我并没有使用swift 3,因此我决定与代表们合作。

这样做很容易。首先,我告诉我的课程我将实施MGSwipeTableCell协议。我这样做是为了扩展:

extension ViewController: MGSwipeTableCellDelegate {
    func swipeTableCell(_ cell: MGSwipeTableCell!, tappedButtonAt index: Int, direction: MGSwipeDirection, fromExpansion: Bool) -> Bool {
        print("Button \(index) tapped")
        // here a switch to control the button tapped is a good choice
        return true
    }
}

第二:不要忘记在func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

中设置cell.delate

这对Xcode 8和swift 3来说很有用!