簡體   English   中英

如何在不使用tag的情況下更改tableviewCell中的圖像按鈕

[英]how to change image button inside a tableviewCell without using tag

我在tableview單元格中有一個按鈕。 我希望最初按鈕有一個圖像“A”,當用戶點擊它時,它會變為“B”,當用戶再次點擊它時它會變回“A”。

在這種情況下,讓兩個圖像為“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

您不使用標記更改按鈕圖像請遵循此代碼。

您的cellForRowAtIndexPath函數為不同的狀態設置了兩個按鈕圖像

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
   }
}

嘗試這個:

你應該使用下面的代碼

- (void)btnChangeImage {
    UIButton *btn;

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

cell.notifybutton.setImage(UIImage(named:“A”),forState:UIControlState.Normal)cell.notifybutton.setImage(UIImage(named:“B”),forState:UIControlState.Selected)cell.notifybutton.selected = false / / default圖像顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM