为TableViewCell创建UI按钮

时间:2017-01-06 22:12:31

标签: ios swift uitableview uibutton

我是Swift和Xcode的新手。我试图在用户按下返回键后使UIButton出现在tableView单元格的右侧。现在我只是出现一般按钮出现问题。

根据我的理解,我的自定义类TextInputTableViewCell我认为应该创建一个按钮:

class TextInputTableViewCell: UITableViewCell {

@IBOutlet weak var textField: UITextField!
var cellButton: UIButton!

func createCellButton()
{
    let image = UIImage(named: "Completed Circle.png")
    cellButton = UIButton(frame: CGRect(x: 340, y: 56, width: 30, height: 30));
    cellButton.setBackgroundImage(image, for: UIControlState.normal)
    addSubview(cellButton)
}

然后在这里我在ViewController类中配置单元格的属性:

   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{


    let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell")! as! TextInputTableViewCell
    cell.textField.delegate = self
    cell.backgroundColor = UIColor.clear //to get background image loaded
    cell.createCellButton()



    return cell
}

我知道我可能搞砸了什么。此外,任何有关如何在用户按下输入后出现的提示将不胜感激。我已经设置了textFieldShouldReturn函数。

2 个答案:

答案 0 :(得分:2)

为什么不使用故事板制作UIButton并制作插座。然后在cellForRowAt执行cell.button.isHidden = true cell.button.isUserInteractionEnabled = false(或类似的,不确定实际拼写)。然后让TextInputTableViewCell符合UITextFieldDelegate

class TextInputTableViewCell: UITableViewCell, UITextFieldDelegate { ..

内部细胞:

 func textFieldShouldReturn(textField: UITextField!) -> Bool {   //delegate method
     self.button.isUserInteractionEnabled = true
     self.button.isHidden = false
     return true
 }

你可能会遇到一些细胞可重用性问题,所以最好制作一些像var userDidEnterText = false这样的局部变量来检查用户是否改变了某些东西

答案 1 :(得分:0)

win = GraphWin("Plot", 500, 500) # Creates a window for m in range(j): # Loop for each function color = random.choice(['red', 'black', 'green', 'yellow', 'pink', 'blue']) # Randomizes a color for each function for h in range(t): # Loop for each pair of values "x, y" win.plot(axis[h], points[m][h], color) # Find points and plot each point in win win.getMouse() # Pause before clicking win.delete("all") # Clear out old plot 身上,我可以看出createCellButton()&的价值。 x可能是问题的根源。我认为按钮是从单元格框架创建的。尝试使用以下参数:

y