【问题标题】:Swift 2 nib in uitableview loads but won't allow interactionuitableview 中的 Swift 2 笔尖加载但不允许交互
【发布时间】:2015-10-21 23:09:05
【问题描述】:

我首先构建了一个没有笔尖的普通自定义单元,它运行良好。但现在我需要在各种视图中重用相同的单元格布局,所以我尝试使用笔尖而不是常规原型单元格。 该单元格确实显示,其中包含信息。但我无法与之互动。例如,我不能在文本字段中书写。当我单击时,它只会选择整个单元格(尽管我在 tableview 选项中关闭了单元格的选择)。

我尝试了不同的方法来初始化单元格,但它要么崩溃,要么什么都不做。

这是我的代码:

CelluleView(自定义单元格)

class CelluleView: UITableViewCell {

   override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
     super.init(style: style, reuseIdentifier: reuseIdentifier)
   }

   required init(coder aDecoder: NSCoder) {
     super.init(coder: aDecoder)!
   }

   override func awakeFromNib() {
     super.awakeFromNib()
   }
}

视图控制器

class PersoViewController: UITableViewController {

override func viewDidAppear(animated: Bool) {
   super.viewDidAppear(true)
}

override func viewDidLoad() {
   super.viewDidLoad()

   let nib = UINib(nibName: "CelluleView", bundle: nil)
   tableView.registerNib(nib, forCellReuseIdentifier: "Cellule")

   tableView.dataSource = self
   tableView.delegate = self

   self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

   let cellule = tableView.dequeueReusableCellWithIdentifier("Cellule", forIndexPath: indexPath) as! CelluleView

   return cellule
}
}

【问题讨论】:

    标签: uitableview swift2 nib


    【解决方案1】:

    一种解决方案是在表格视图中启用选择。

    将选择样式设置为无

    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = UITableViewCellSelectionStyle.None
    }
    

    为您的文本字段创建一个出口

    @IBOutlet weak var textField: UITextField!
    

    用笔尖连接

    然后在单元格中响应选择并设置文本字段成为第一响应者

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    
        textField.becomeFirstResponder()
    }
    

    【讨论】:

    • 它有效!但随后它以文本字段为中心,除非我选择它们,否则我无法向下滚动到其他单元格。我还在文本字段旁边添加了一个按钮,但我无法“单击”它...
    • 这让我想知道您的视图是如何设置的...我从未遇到过这样的问题。
    • 当我遇到类似的问题时,我通常使用这篇文章中第二个答案中显示的视图层次结构工具stackoverflow.com/questions/5150186/… 这是一个很好的检查是否有任何视图阻止触摸或类似的.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多