UITableViewCell:垃圾桶图像显示在单元格选择上

时间:2014-12-10 07:25:22

标签: objective-c uitableview

我有一个UITableViewCell,其中包含以下层次结构:

enter image description here

我使用swipepan手势将Container View向左移动,以便显示垃圾按钮,类似于Instagram:

enter image description here

但是,在单元格选择上可以看到thrash按钮:

enter image description here

修改

请注意:

trash button实际上是一个透明png image的自定义按钮。然后按钮的背景颜色设置为red

请提供您宝贵的建议或解决此问题的方法。谢谢!

1 个答案:

答案 0 :(得分:0)

由于我没有得到正确的答案,我被迫解决了这个问题,正如@hoang Van Ha指出的那样。

在自定义单元格类中:

我通过覆盖setSelected方法隐藏了按钮,如下所示:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    if (self.cellContainerView.frame.origin.x == 0) {
        self.trashButton.hidden = YES;
    }
}

在手势方法的开头,即panswipe我再次显示按钮,在完成手势时,我检查容器视图的帧是否为零。如果是这样,则应隐藏按钮。

- (IBAction)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer
{
    self.trashButton.hidden = NO;
    if ( recognizer.direction == UISwipeGestureRecognizerDirectionRight ) {

        [UIView animateWithDuration:0.2
                     animations:^{
                         self.cellContainerView.frame = CGRectMake(0, self.cellContainerView.frame.origin.y, 320, self.cellContainerView.bounds.size.height);
                     }
                     completion:^(BOOL finished) {
                         self.trashButton.hidden = YES;
                     }
         ];
    }
}

在控制器类中,在行方法的单元格中,执行相同的过程。

 if (cell.cellContainerView.frame.origin.x == 0) {
         cell.trashButton.hidden = YES;
 }

请随时发表评论,甚至发布更好的答案!