UIUutton के साथ कस्टम UITableViewCell: UIImage को बदलने में असमर्थ

मेरे पास कस्टम UITableViewCell के साथ एक कस्टम UITableViewCell है जिसमें इसमें एक UIButton है, जब मैं उपयोगकर्ता इसे चुनता हूं तो चयनित बटन की पृष्ठभूमि छवि बदलना चाहता हूं,

दुर्भाग्यवश, जब भी मैं इसे दबाता हूं तो छवि स्थिति बदल नहीं रही है और यह दिखाती है:

बिना अपवाद के कारण ऐप को समाप्त करना   'एनएसआईएनवालिडअर्ग्यूमेंट एक्सेप्शन', कारण: '- [यूआईवी व्यू   setBackgroundImage: forState:]:

मेरा कोड स्निपेट यहां है:

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    static NSString *CellIdentifier = @"BTSTicketsCellIdentifier";
    CRIndCategCell *cell = (CRIndCategCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {
        //Initialize cell
    }

    cell.favBtn.tag=indexPath.row;
    [cell.favBtn addTarget:self action:@selector(AddToFav:) forControlEvents:UIControlEventTouchUpInside];

      ...
      ...
      ...

}

-(IBAction)AddToFav:(id)sender{
    NSLog(@"Value of selected button = %ld",(long)[sender tag]);

    UIButton *Btn=(UIButton*)[self.view viewWithTag:(long)[sender tag]];
    [Btn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
    [Btn setBackgroundImage:[UIImage imageNamed:@"grey-star.png"] forState:UIControlStateNormal];


}

मेरा लॉग शो चयनित बटन का मूल्य सही ढंग से दिखाता है लेकिन बटन की छवि बदलने में असमर्थ

पढ़ने के लिए धन्यवाद।

3

2 उत्तर

अपने AddToFav: विधि को संशोधित करने का प्रयास करें:

-(IBAction)AddToFav:(UIButton *)sender{
    NSLog(@"Value of selected button = %ld",(long)[sender tag]);

    [sender setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
    [sender setBackgroundImage:[UIImage imageNamed:@"grey-star.png"] forState:UIControlStateNormal];


}

या इसका इस्तेमाल करें:

-(IBAction)AddToFav:(UIButton *)sender{
    NSLog(@"Value of selected button = %ld",(long)[sender tag]);
  UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    for (UIButton *btn in [cell.contentView.superview subviews] ) {
        if ([btn isKindOfClass:[UIButton class]]&& btn.tag ==(long)[sender tag]) {
           [btn setBackgroundImage:[UIImage imageNamed:@"grey-star.png"]       
        }
    }  
}
4
जोड़ा
ओह हाँ दोस्त यह काम कर रहा है, धन्यवाद
जोड़ा लेखक Krunal, स्रोत

जांचें कि बटन का टैग == 0. यह सामग्री के लिए डिफ़ॉल्ट टैग है UITableViewCell के दृश्य और यह संभव है कि आप सेल की सामग्री दृश्य की छवि को बदलने की कोशिश कर रहे हैं।

0
जोड़ा