gpt4 book ai didi

iphone - 在 UITableViewCell 上实现我自己的滑动

转载 作者:行者123 更新时间:2023-11-29 13:21:00 26 4
gpt4 key购买 nike

我想在我的 UITableView 中实现两个编辑选项:

1.当用户在 UITableViewCell 上滑动时,它会得到 UITableViewCellEditingStyleDelete

2.当用户按下编辑按钮时,UITableView 将进入编辑模式(这是我在 UITableViewCell .m 文件中自己定义的:

-(void) setEditing:(BOOL)editing animated:(BOOL)animated {
if ( (selectionButton.superview == self.contentView && !editing) || (selectionButton.superview != self && editing))
{
// REMOVE BUTTON
[super setEditing:editing animated:animated];

if (self.editingStyle != UITableViewCellEditingStyleDelete) {
if (!editing)
{
if (selectionButton.superview == self.contentView)
{
[UIView animateWithDuration:0.5 animations:^
{
selectionButton.alpha = 0;
CGRect btnFrame = selectionButton.frame;
btnFrame.origin.x -= 120;
selectionButton.frame = btnFrame;
}
completion: ^(BOOL done)
{
[selectionButton removeFromSuperview];
}
];
}
}
else {
// ADD BUTTON
if (selectionButton.superview != self.contentView)
{
[self.contentView addSubview:selectionButton];
selectionButton.alpha = 0;
selectionButton.center = CGPointMake(-self.contentView.frame.origin.x / 2 - 30, self.frame.size.height / 2);
[UIView animateWithDuration:0.3 animations:^
{
selectionButton.alpha = 1;
selectionButton.center = CGPointMake(-self.contentView.frame.origin.x / 2 + 3, self.frame.size.height / 2);
}];
}
}

[self setNeedsLayout];
}
}
}

我想将此委托(delegate)方法添加到我的 UITableView 中:

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

if (table.editing) {
return 3;
} else {
return UITableViewCellEditingStyleDelete;
}

// return 3;
}

但问题是当我在单元格上滑动手指时该函数调用了 3 次。

有什么办法可以解决吗?或者它内置在 UITableView 中,当用户滑动手指在单元格上时调用此方法?

我可以实现自己的 UISwipeGestureRecognizer 并仅在按下编辑按钮时调用委托(delegate)函数吗?

最佳答案

为什么不直接向单元格添加 UIGestureRecognizer 并通知 View Controller 滑动并执行编辑?

关于iphone - 在 UITableViewCell 上实现我自己的滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com