2014-11-26 2 views
1

Я делаю приложение, в котором я использую ячейку tableview, а в ячейке uitableview я использую кнопку в форме флажка. У меня есть два изображения с именем «uncheck.png» и «tick.png», когда я нажимаю на эту кнопку, показывается галочка, но снимите галочку с изображения. Я хочу, чтобы это тиковое изображение на этом снимите флажок ...! i want that tick image slightly that square imageЗначки флажков не отображаются должным образом

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

    static NSString *tableviewidentifier = @"cell"; 
    tablecellTableViewCell *cell= [self.activitiesTableView_ dequeueReusableCellWithIdentifier:tableviewidentifier]; 

    if(cell==nil) 
    { 
     cell = [[tablecellTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:tableviewidentifier]; 
    } 

    UILabel *valuedate = (UILabel *)[cell viewWithTag:11]; 
    UILabel *msg = (UILabel *)[cell viewWithTag:12]; 
    UILabel *date = (UILabel *)[cell viewWithTag:13]; 
    UILabel *time = (UILabel *)[cell viewWithTag:14]; 
    [valuedate setText:@"Demo"]; 
    [msg setText:@"How are You?"]; 
    [email protected]"14/07/2014"; 
    [email protected]"A 08:16"; 


    // [cell.textLabel setText:activityModel.userName]; 
    valuedate.font=[UIFont fontWithName:@"SegoeUI" size:15]; 
    msg.font=[UIFont fontWithName:@"SegoeUI-light" size:10.0]; 
    date.font=[UIFont fontWithName:@"SegoeUI-light" size:9]; 
    time.font=[UIFont fontWithName:@"SegoeUI-light" size:9]; 



    if ([self.checkimageArray containsObject:[self.lblArray objectAtIndex:indexPath.row]]) 
    { 
     [cell.button setImage:[UIImage imageNamed:@"tick.png"] forState:UIControlStateNormal]; 

     //[cell.button setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal]; 

    } 
    else 
    { 
     [cell.button setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal]; 

    } 

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



    return cell; 
} 

ответ

2

Используйте снимите флажок изображение в качестве фонового изображения с помощью

[cell.button setBackgroundImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal]; 

, а затем ваш проверить изображение как изображение

[cell.button setImage:[UIImage imageNamed:@"tick.png"] forState:UIControlStateNormal]; 

Теперь вы можете изменить изображение кнопки на каждом кране но фоновое изображение будет исправлено. когда кнопка выбирается установить галочку на изображение, изображение еще установить его как ноль

Заменить код с этой

[cell.button setBackgroundImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal]; 
[cell.button setImage:nil forState:UIControlStateNormal]; 

if ([self.checkimageArray containsObject:[self.lblArray objectAtIndex:indexPath.row]]) 
    { 
     [cell.button setImage:[UIImage imageNamed:@"tick.png"] forState:UIControlStateNormal]; 
    } 

Может быть, это может решить вашу проблему enter image description here

+0

он работает нормально во всех клетках но на первой ячейке он не работает. –

+0

не работает нормально ... первая ячейка не показывает фоновое изображение, затем следующая ячейка показывает фоновое изображение, затем следующая ячейка не снята. –

+0

Возможно, это происходит из-за повторного использования вашей ячейки, поэтому попробуйте отредактированный код, приведенный в моем ответе. – iHulk

Смежные вопросы