2015-08-13 4 views
3

У меня есть кнопка в ячейке tableview. Я хочу, чтобы изначально кнопка имела изображение «A», когда пользователь нажимает на нее, она изменяется на «B», когда пользователь нажимает на нее снова, она снова возвращается к «A».Как изменить кнопку изображения внутри tableviewCell без использования тега

Пусть два изображения будет «A» и «B» в этом сценарии я не могу использовать tag, потому что я использую его, чтобы определить, какую кнопку нажал пользователь, используя indexPath.row

ниже является текущее состояние моя кнопка функция.

@IBAction func setNotification(sender: UIButton!) { 

     cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: sender.tag, inSection: 0)) as! CustomTableViewCell 

     sender.setImage(UIImage(named: "B")!, forState: .Normal) 
currentRegion = CLCircularRegion(center: CLLocationCoordinate2D(latitude: latitude ,longitude:longitude), radius: 10, identifier: "xyz") 

Кроме того, это как моя cellForRowAtIndexPath функция выглядит

cell.notifybutton.addTarget(self, action: "setNotification:", forControlEvents: UIControlEvents.TouchUpInside) 
     cell.notifybutton.setImage(UIImage(named: "A"), forState: UIControlState.Normal) 
     cell.notifybutton.tag = indexPath.row 
+0

Итак, что теперь не работает? – JulianM

+0

@JulianM после того, как изображение изменилось на «B», я хочу, чтобы он снова вернулся к «A», когда пользователь снова нажал кнопку. – sumesh

ответ

6

Вы можете изменить изображение кнопки без использования тега следовать этому код.

Ваш cellForRowAtIndexPathfunction установить два изображения кнопки для различного состояния

cell.notifybutton.setImage(UIImage(named: "A"), forState: UIControlState.Normal) 
cell.notifybutton.setImage(UIImage(named: "B"), forState: UIControlState.Selected) 
cell.notifybutton.selected = false //default A image display 

вашей кнопка нажата методом

@IBAction func setNotification(sender: UIButton!) { 
    if (sender.selected) 
    { 
     sender.selected = false 
    } 
    else 
    { 
     sender.selected = true 
    } 
} 
+0

Это сработало. –

2

Попробуйте это:

вы должны использовать ниже код

- (void)btnChangeImage { 
    UIButton *btn; 

    if (btn.selected) { 
     [btn setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected]; 
    } else { 
     [btn setImage:[UIImage imageNamed:@"diselected.png"] forState:UIControlStateNormal]; 
    } 
} 
0

cell.notifybutton.setImage (UIImage (названо: "А"), Форстат: UIControlState .Normal) cell.notifybutton.setImage (UIImage (named: "B"), forState: UIControlState.Selected) cell.notifybutton.selected = false // по умолчанию Отображение изображения

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