我一直有对齐问题。邮件标签不断写入时间戳,用户名正在消失。我尝试了建议的约束,但没有任何对我有用。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
//Transform Data From ^ to load at the bottom
tableView.transform = CGAffineTransform (scaleX: 1,y: -1);
cell?.contentView.transform = CGAffineTransform (scaleX: 1,y: -1);
cell?.accessoryView?.transform = CGAffineTransform (scaleX: 1,y: -1);
//Set username label to display username
let usernameLabel = cell?.viewWithTag(1) as! UILabel
usernameLabel.text = generalRoomDataArr[indexPath.row].username
//Set message label to display message
let messageLabel = cell?.viewWithTag(2) as! UILabel
messageLabel.text = generalRoomDataArr[indexPath.row].message
messageLabel.numberOfLines = 0
//initialize UI Profile Image
let imageView = cell?.viewWithTag(3) as! UIImageView
//Make Porfile Image Cirlce
imageView.layer.cornerRadius = imageView.frame.size.width/2
imageView.clipsToBounds = true
//Set timeStampLabel to current time AGO
let timeStampLabel = cell?.viewWithTag(4) as! UILabel
timeStampLabel.text = generalRoomDataArr[indexPath.row].timeStamp
timeStampLabel.numberOfLines = 0
//Loading and change of Usesrs profile image on chat cell
let userProfileChatImage = generalRoomDataArr[indexPath.row].photoURL
//Load profile image(on cell) with URL & Alamofire Library
let downloadURL = NSURL(string: userProfileChatImage!)
imageView.af_setImage(withURL: downloadURL as! URL)
// your cell coding
return cell!
}
//TableView Cell word wrap (Dynamic Text)
self.tableView.dataSource = self
self.tableView.delegate = self
self.tableView.estimatedRowHeight = 78
self.tableView.rowHeight = UITableViewAutomaticDimension
我是否还需要将时间戳标签设置为0?
messageLabel.numberOfLines = 0
答案 0 :(得分:0)
我过去常常使用像你一样使用的标签,并发现NSMutableAttributedString()
。有大量的视频和网页可以解释它的工作原理。如果有人喜欢特定的人,他们可以在评论中链接它!我使用attributedString
和UITextView
来显示我需要的所有内容(基于文本)。我在YouTube上推荐this视频(从12:00开始),因为很难用文字解释。为了解决创建适合不同文本量的UITableViewCell
的问题,您需要拖动没有特定宽度或高度约束的UITextView。这将允许它随细胞而变化。然后,使用您拥有的代码......
self.tableView.estimatedRowHeight = 78
self.tableView.rowHeight = UITableViewAutomaticDimension
您的细胞会动态变化。实现这一目标的一个技巧是执行以下步骤:
1)使用UITextView
禁用isUserInteractionEnabled = false
上的用户互动
2)取消选中Interface Builder(Storyboard)中的Editable
和Selectable
,以及取消选中IB中的Scrolling Enabled
。
答案 1 :(得分:0)
如果您已经捕获了该屏幕截图中的所有约束条件。我认为您错过了时间戳标签和邮件标签之间的垂直间距约束。添加此约束后,您还需要更改三个标签中的一个的垂直压缩阻力和拥抱优先级。我建议减少邮件标签。