在自定义tableViewCell单元格中重用隐藏按钮[ios]

时间:2016-10-19 10:44:38

标签: ios swift3 xcode8 tableviewcell

我想重用表格视图单元格按钮。最初我在单元格中有两个按钮隐藏,一个按钮可见。当我点击可见按钮时,隐藏的两个按钮也将可见。我设置了按钮目标动作。这是我的代码

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "CellForEndItem", for: indexPath as IndexPath) as! CellForEndItem
        cell.incrementBtn.isHidden = true
        cell.decreamentBtn.isHidden = true
        cell.priceLbl.text = "$ 200"

        cell.counterBtn.tag = indexPath.row
        cell.incrementBtn.tag = indexPath.row
        cell.decreamentBtn.tag = indexPath.row
        cell.counterBtn.addTarget(self, action: #selector(CounterBtnTapped(sender:)), for: .touchUpInside) }

现在轰鸣声是我的CounterBtnTapped方法..

var count: Int = 0
    func CounterBtnTapped(sender: UIButton) {
            self.count += 1
            let indexPath = IndexPath(row: sender.tag, section: 0)    
            let cell = self.tableView.dequeueReusableCell(withIdentifier: "CellForEndItem",for: indexPath) as! CellForEndItem
            cell.incrementBtn.isHidden = false
            cell.decreamentBtn.isHidden = false
            sender.setTitle(String(self.count), for: .normal)
    }

但不知何故,增量和减量按钮不可见。我在这做错了什么。需要专家建议??

4 个答案:

答案 0 :(得分:1)

只需在故事板上添加导航项目按钮并更改其背景颜色即可。创建一个UIButton的出口并制作圆角。

enter image description here

@IBOutlet weak var barBtn: UIButton!

override func viewDidLoad() {
  super.viewDidLoad()


   barBtn.layer.cornerRadius = 5
   barBtn.layer.borderWidth = 1
   barBtn.layer.borderColor = UIColor.blackColor().CGColor
 }

答案 1 :(得分:0)

您可以创建自定义按钮,然后将customView添加到右侧按钮按钮的导航栏按钮。

var view = UIView(frame: CGRectMake(0, 0, 100, 44))
view.backgroundColor = UIColor.blueColor()
var barButtonItem = UIBarButtonItem(customView: view)
self.navigationItem.rightBarButtonItem = barButtonItem

添加相关代码,使您的按钮看起来像设计,然后将其添加到customView。

答案 2 :(得分:0)

您可以将自定义视图用作barButtonItem。

let customButton = UIButton(frame: .zero)
// configure title text and color, background color, action, etc. using UIButton functions.
// configure shadow, cornerRadius using customButton.layer properties
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: customButton)

答案 3 :(得分:0)

问题在于刷新tableView Cell。我添加了以下代码行

tableView.reloadRows(at: [indexPath], with: .automatic)

也可以。