TableViewCell 上的 UIImageView 缺少单击单元格的约束

Posted

技术标签:

【中文标题】TableViewCell 上的 UIImageView 缺少单击单元格的约束【英文标题】:UIImageView on TableViewCell missing its constraints on clicking cell 【发布时间】:2017-02-02 04:46:05 【问题描述】:

要求:

我正在做一个sideBar navigation,在里面使用UITableViewUITableViewCell。在UITableViewCell里面,有一个UIImageView和一个UILabel。我希望UIImageView具有相同的height 和 width,我已经给了它限制。

问题:

但是在单击每个单元格后,图像视图的大小会发生变化(缺少约束)并与标签重叠。

我只在情节提要中做了所有约束,我在 swift 3 中做 请帮帮我。

代码工作:

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
  
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
     cell.label.text = data[indexPath.row]
     let iconName = images[indexPath.row]
    //print("\(iconName)")
     let image = UIImage(named: iconName)
   // print("The loaded image: \(image)")
     cell.imageViews.image = image
    
         return cell


  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
  
   tableView.deselectRow(at: indexPath, animated: true)

屏幕截图

【问题讨论】:

如果实现了显示你的 didSelectForRow? cell.imageView.maskToBound = true ,试试这个 @Himanshu func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) tableView.deselectRow(at: indexPath, animated: true) 为什么要取消选择 didselect 方法上的单元格。显示您的原型单元约束。 即使我避免取消选择,结果也是一样的--@the_dahiya_boy 【参考方案1】:
        for viw in cell.contentView.subviews 
        if ((viw as? UIImageView) != nil) 
            viw.removeFromSuperview()
        else if ((viw as? UILabel) != nil) 
            viw.removeFromSuperview()
        
    

在单元格创建后使用此代码 [从第二行开始]。试试看。

【讨论】:

以上是关于TableViewCell 上的 UIImageView 缺少单击单元格的约束的主要内容,如果未能解决你的问题,请参考以下文章

从 TableViewCell 上的 UITextField 获取文本

实际操作-手把手探究tableViewCell上的控件点击事件

TableViewCell 上的 UIImageView 缺少单击单元格的约束

获取屏幕上的某个控件相对位置,尤其是tableviewcell上的某一个控件的相对位置

iOS7 上的 TableViewCell 中不会显示复选标记

IQKeyboardManager上的bug以及tableViewcell乱跳