单元格中的图像显示在textLabel和detailTextLabel上方,但在附件视图下

时间:2014-04-17 21:01:41

标签: ios objective-c uitableview

所以我有一个UIImageView作为UITableViewCell中的子视图。我希望它高于单元格中的所有内容(因此,用户无法看到此imageView所涵盖的任何内容)。但是,它只覆盖textLabel和detailTextLabel,但不包括accessoryView。谁能告诉我怎么做?非常感谢。


这里有一些代码: 初始化单元格时,我有

[cell setAccessoryView:rangeIndicatorView];

当我在它上面添加一个imageView时,

-(void) animateSwipeOnCell:(UITableViewCell*)cell {
    UIImageView *swipeImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"swipe_arrow.png"]];
    [cell.contentView addSubview:swipeImg];
    [swipeImg setFrame:CGRectMake(cell.bounds.origin.x - cell.bounds.size.width, cell.bounds.origin.y, cell.bounds.size.width, cell.bounds.size.height)];

    [UIView animateWithDuration:1
                          delay:0.3
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         [swipeImg setFrame:CGRectMake(cell.bounds.origin.x + cell.bounds.size.width, cell.bounds.origin.y, cell.bounds.size.width, cell.bounds.size.height)];
                     }
                     completion:^(BOOL finished) {
                         [swipeImg removeFromSuperview];
                     }];

}

1 个答案:

答案 0 :(得分:1)

我无法通过将图像直接添加到UITableViewCell来使其工作,所以通过将视图直接放在UITableView上可以替代它:

- (void)animateSwipeOnTableView:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath {
    UIImageView *swipeImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"swipe_arrow.png"]];
    CGRect tableViewRect = [tableView rectForRowAtIndexPath:indexPath];
    [tableView addSubview:swipeImg];

    [swipeImg setFrame:CGRectMake(tableViewRect.origin.x - tableViewRect.size.width, tableViewRect.origin.y, tableViewRect.size.width, tableViewRect.size.height)];

    [UIView animateWithDuration:1
                          delay:0.3
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         [swipeImg setFrame:CGRectMake(tableViewRect.origin.x + tableViewRect.size.width, tableViewRect.origin.y, tableViewRect.size.width, tableViewRect.size.height)];
                     }
                     completion:^(BOOL finished) {
                         [swipeImg removeFromSuperview];
                     }];
}