如何在UITableView的编辑模式下将自定义单元格向左移动

时间:2018-07-27 02:33:46

标签: swift uitableview

我有UITableView的自定义单元格,其中包含UIImage和textLabel。当我选择编辑模式时,textLabel将显示以下图像;

enter image description here

我想将其向左移动。我尝试了所有事情,但没有成功。 请让我知道。

<button style="position: absolute; top: 0px;" onclick="typeWriter('hello world', '70')">CLICK ME</button>

<p style="padding-top: 50px; text-align: center;" id="loadingText" class="loadingTitle"></p>

<script>
  var letters;
  var i = 0;

  function typeWriter(text, speed) {
    console.log(text)
    var textLength = text.length;
    if (i < textLength) {
      document.getElementById("loadingText").innerHTML += text.charAt(i);
      i++;
      setTimeout(typeWriter, speed);
      if (i == Math.max(textLength)) {

      }
    }
  }
</script>

3 个答案:

答案 0 :(得分:0)

尝试使用以下代码:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.dataArr.count
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 80.0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "TestTableCell") as? TestTableCell else {
        return UITableViewCell()
    }

    cell.customImageView.image = #imageLiteral(resourceName: "ic_audio")
    cell.customTitleLabel.text = self.dataArr[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
    return UITableViewCellEditingStyle.delete
}

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {
        print("delete at \(indexPath.row)")
    }
}

以下是此代码的输出:

enter image description here

注意:您可以使用editingStyleForRowAt方法更改编辑操作,而要执行该操作,则需要使用commit editingStyle方法编写逻辑。

希望这对您有所帮助!

答案 1 :(得分:0)

我建议您在该UITableViewCell中创建新标签,并将该标签连接到自定义UITableViewCell类!那么您就可以自由地做任何事情!

Swift 4:

  1. 创建一个新类,它是UITableViewCell的子类!

enter image description here

  1. 在您的实用工具工具栏中的storyboard右键菜单中,Utilities进入Identity inspector,将单元格类定义为新的UITableViewCell类

enter image description here

  1. UILabel中的Object library拖放到您的单元格中

enter image description here

  1. 现在使用拖放功能将该标签连接到您的UITableViewCell类,然后创建一个插座

enter image description here

完美!

现在使用myLabel代替textLabel;)

不要忘记投射单元格as! YourCustomCellClass

祝你好运;)

答案 2 :(得分:0)

看看这个,希望对您有帮助

swipe left/right in tableViewCell

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let closeAction = UIContextualAction(style: .normal, title:  "Close", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
         print("OK, marked as Closed")
         success(true)
     })
     closeAction.image = UIImage(named: "tick")
     closeAction.backgroundColor = .purple

     return UISwipeActionsConfiguration(actions: [closeAction])
}