如何改变细胞图像?

时间:2013-07-30 05:54:57

标签: iphone uitableview

我在iPhone中有自定义单元格,其中有一个按钮和图像视图我想要更改图像视图的图像,当我点击这里的按钮是我的按钮代码

-(void)btnLikePressed:(UIButton *)sender{

     imageDC *objMenu = [dataArray objectAtIndex:sender.tag];
    GET_DBHANDLER
    [dbHandler performSelector:@selector(like_image:) withObject: objMenu.image_id];


}

5 个答案:

答案 0 :(得分:0)

要找到UITableViewCell的确切索引,请使用以下方法: -

CGPoint point = [sender convertPoint:CGPointZero toView:_iTableView];
NSIndexPath *indexPath = [_iTableView indexPathForRowAtPoint:point];

您将获得索引路径。在这里,您可以识别出您的UIImageView,希望您为其添加了标签,然后更改了图片。

答案 1 :(得分:0)

以下步骤将起作用: -

  1. 标记您的imageview。
  2. 在cellForRowatIndexpath中使用此代码

    NSArray *nib;
    static NSString *cellIdentifier= @"cell";
    
    UITableViewCell *theCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    
    
    if(theCell== nil)
    {
        {
            nib = [[NSBundle mainBundle] loadNibNamed:<Your cellNibName> owner:self options:nil]; 
        }
        theCell = [nib objectAtIndex:0];
        theCell.selectionStyle = UITableViewCellSelectionStyleNone;
        // theCell.selectionStyle = UITableViewCellSelectionStyleBlue;
    }
    
    UIImageView *imageView=(UIImageView*)[[theCell contentView] viewWithTag:<Your tag>];
    

    //使用imageView

  3. 做任何你想做的事
  4. 你有图像视图参考做你想要的。

答案 2 :(得分:0)

在UITableViewDataSource函数

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

设置单元格时,只需将标签添加到按钮和imageView中。

cell.yourBtn.tag   = indexPath.row;
cell.imageView.tag = indexPath.row + 1000(any number);

现在在你的UITableViewController类

现在,当用户点击按钮时,您获得的按钮标记实际上是您的行号和imageView(btn标记+ 1000)标记,您可以使用相同的信息获取imageView。

 -(void)btnLikePressed:(UIButton *)sender{

    NSInteger btnTag = [sender tag];
    UIImageView *imageView = [yourTableView viewWithTag:btnTag + 1000];
    // here your code by using imageView    
}   

答案 3 :(得分:0)

试试这个以下代码

-(void)btnLikePressed:(UIButton *)sender{

    static NSString *CellIdentifier = @"yourCellName";

    UITableViewCell *cell=(UITableViewCell*)[[sender superview] superview];

    UITableView *tableView=(UITableView*)[cell superview];
    NSIndexPath *path=[tableView indexPathForCell:cell];


    yourCellName *selectedCell = (yourCellName*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    [selectedCell.imageView.image setImage:[UIImage imageNamed:@"yourImageName.png"]]; 
}

答案 4 :(得分:0)

首先将tagValue提供给你的imageView,就像你给imageView一样。 然后在buttonClick上访问它。

-(void)btnLikePressed:(UIButton *)sender
{
    UITableViewCell *cell=(UITableViewCell*)[sender superview];

    UIImageView*imageView=(UIImageView*)[cell viewWithTag:5];

    //Now do whatEver you want to do with your imageview
}

编辑

如果您将imageView添加为

[cell.contentView addSubview:imageView];  

然后像这样获取你的tableView单元格

UITableViewCell *cell=(UITableViewCell*)[[sender superview] superview];