Changing Image on selected state of UITablView cell

前端 未结 3 1613
遇见更好的自我
遇见更好的自我 2020-12-18 13:50

I have a created a custom cell and added one label and Image, I have 4 rows in my table each row has a different image and each row opens a different view controller, so, no

相关标签:
3条回答
  • 2020-12-18 14:15

    First create a property in your custom cell for uiImageview and synthesize it..

    and the in didSelectRowAtIndexPath delegate method of UITabeView access the property and change the image something like :-

    yourCell.yourImageView.image=[UIImage imageNamed:@"yourImage"]
    

    For Sample I am giving my Code :-

    #import <UIKit/UIKit.h>
    
    
    @interface CustomizedCellProductDetails : UITableViewCell {
    
        UILabel *sNO;
        UILabel *abcWine;
        UILabel *redWine;
        UILabel *two;
        UILabel *hundred;
        UILabel *fourTwo;
        UILabel *twoOne;
        UIImageView *imgView;
    
        UILabel *itemNo;
        UILabel *itemName;
        UILabel *itemDesc;
        UILabel *department;
        UILabel *qtyAvailable;
    
        UIButton *check;
    
    }
    
    @property (nonatomic , retain) UILabel *sNO;
    @property (nonatomic , retain) UILabel *abcWine;
    @property (nonatomic , retain) UILabel *redWine;
    @property (nonatomic , retain) UILabel *two;
    @property (nonatomic , retain) UILabel *hundred;
    @property (nonatomic , retain) UILabel *fourTwo;
    @property (nonatomic , retain) UILabel *twoOne;
    @property (nonatomic , retain) UIImageView *imgView;
    
    @property (nonatomic , retain) UILabel *itemNo;
    @property (nonatomic , retain) UILabel *itemName;
    @property (nonatomic , retain) UILabel *itemDesc;
    @property (nonatomic , retain) UILabel *department;
    @property (nonatomic , retain) UILabel *qtyAvailable;
    @property (nonatomic , retain) UIButton *check;
    
    -(void) clicked;
    @end
    

    .m file synthesize it:-

    #import "CustomizedCellProductDetails.h"
    
    
    @implementation CustomizedCellProductDetails
    @synthesize sNO,abcWine,redWine,two,hundred,fourTwo,twoOne,imgView,itemNo,itemName,itemDesc,department,qtyAvailable,check;
    

    in tableview delegate :-

    #pragma mark -
    #pragma mark Table view delegate
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        // Navigation logic may go here. Create and push another view controller.
        /*
        <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
        // ...
        // Pass the selected object to the new view controller.
        [self.navigationController pushViewController:detailViewController animated:YES];
        [detailViewController release];
        */
    CustomizedCellProductDetails * cell = (CustomizedCellProductDetails )[tableView cellForRowAtIndexPath:indexPath]; 
    [cell.imgView setImage:[UIImage imageNamed:@"wine.png"]];
    
        }
    
    0 讨论(0)
  • 2020-12-18 14:27

    Try to do following when creating your cell ...

    In Implementation Block...

    @implementation ABC
    {
        NSMutableArray  *imageArray;
        NSMutableArray  *imageSelectedArray;
    }
    

    Do this In the below method

    (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    
    {
        [cell.imageView setImage:[UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]]];
        [cell.imageView setHighlightedImage:[UIImage imageNamed:[imageSelectedArray objectAtIndex:indexPath.row]]];
    }
    
    0 讨论(0)
  • 2020-12-18 14:28

    Try to do following when creating your cell or in tableView:willDisplayCell:forRowAtIndexPath: method:

    cell.imageView.image = [UIImage imageNamed:@"abc.png"];
    cell.imageView.highlightedImage = [UIImage imageNamed:@"abc.png"];
    

    It will work for your icon property too if it is UIImageView

    0 讨论(0)
提交回复
热议问题