自定义 UITableViewCell 中的 UIImageView 在单击时调整大小

Posted

技术标签:

【中文标题】自定义 UITableViewCell 中的 UIImageView 在单击时调整大小【英文标题】:UIImageView in custom UITableViewCell resizing upon click 【发布时间】:2019-06-27 10:36:40 【问题描述】:

我有一个自定义 UI 表格视图单元格,单击它后,单元格内的 UIImageView 会调整大小,并且在 cellForRowAt 中定义的先前样式(例如圆角)在单击时丢失。请看附图。

引用 cellForRowAt 中的个人资料图像视图的代码

  cell.profileImageView.layer.masksToBounds = false
        cell.profileImageView.layer.cornerRadius = cell.profileImageView.frame.height/2
        cell.profileImageView.clipsToBounds = true

来自 didSelectRow 的代码

let message = downloadedmessages![indexPath.row] as! ALMessage

let displayVC : ChatViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "chatViewController") as! ChatViewController
displayVC.sender = msgUser(senderId: ALUserDefaultsHandler.getUserId(), displayName: ALUserDefaultsHandler.getDisplayName())
displayVC.reciever = msgUser(senderId: message.to, displayName: message.name)
navigationController?.pushViewController(displayVC, animated: true)

【问题讨论】:

你能添加一些代码吗? 请加didSelectRowAt()代码! 【参考方案1】:

尝试添加profileImageViewcontentMode,即

profileImageView.contentMode = .scaleAspectFit

另外,在.xib 中添加正确的heightwidth constraints profileImageView

注意: tableView(_:cellForRowAt:) 不是添加单元格的 layer 属性的正确位置,以防您重复使用同一个单元格。必须在awakeFromNib()方法中添加,即

override func awakeFromNib() 
    super.awakeFromNib()
    self.profileImageView.layer.masksToBounds = false
    self.profileImageView.clipsToBounds = true
    self.profileImageView.contentMode = .scaleAspectFit


override func layoutSubviews() 
    super.layoutSubviews()
    UIImageView().contentMode = .scaleAspectFit
    self.profileImageView.layer.cornerRadius = cell.profileImageView.frame.height/2

【讨论】:

以上是关于自定义 UITableViewCell 中的 UIImageView 在单击时调整大小的主要内容,如果未能解决你的问题,请参考以下文章

在 Storyboard 中设计的自定义 UITableViewCell 中的自定义 UIView

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局