在tableview中的UItexView后面附加UIimage

时间:2016-05-12 05:01:39

标签: ios swift uitableview uiimageview autolayout

我在tableview单元格中附加了一个UItextView。现在我想在聊天气泡后插入一个UIimage。但每次滚动tableview时,Uitextview的宽度变小,高度变长。文本也从单行到多行调整大小。此外,当我滚动回早期单元格(例如第一行)时,会发生同样的事情。 我无法弄清楚为什么会这样。

我的代码是: ( SampleTableViewCell 是我的自定义UItableViewCell类, lblTitle 是我的UitextView插座。)

func tableView(tableView: UITableView, willDisplayCell cell: SampleTableViewCell, forRowAtIndexPath indexPath: NSIndexPath) 
 {

    cell.lblTitle.removeConstraints(cell.lblTitle.constraints)

    let stringTitle = carName[indexPath.row] as String //carName is an array
    cell.lblTitle.text=stringTitle
    cell.lblTitle.sizeToFit()

    let h = cell.lblTitle.frame.size.height
    let w = cell.lblTitle.frame.size.width
    let constraints = NSLayoutConstraint(item: cell.lblTitle, attribute: .Width, relatedBy: .Equal, toItem: cell.lblTitle, attribute: .Height, multiplier: 0, constant: w)
    cell.lblTitle.addConstraint(constraints)

    let kl = UIImage(imageLiteral: "bubble")
    let imageView  = UIImageView(frame:CGRectMake(0, 0, w, h))
    imageView.image = kl
    imageView.alpha = 0.4
    cell.lblTitle.addSubview(imageView)
    cell.lblTitle.sendSubviewToBack(imageView)
  }  

2 个答案:

答案 0 :(得分:0)

这是自动布局的问题。

您只是为textView提供高度和宽度约束。 x和y位置怎么样?

你还没有为你的imageview设置约束!!

如果你给一个对象赋予约束,那么你需要给每个与它相关的对象。

因此,设置适当的约束,你的问题就会得到解决。

答案 1 :(得分:0)

不是以编程方式添加气泡图像视图和约束,而是使用故事板,您可以先在tableview单元格中添加imageview,然后再添加与imageview相同大小的UITextView并添加约束。然后,您可以在cellForRowAtIndexPath委托中为lblTitle的文本和气泡图像添加逻辑。确保将lblTitle的背景设置为ClearColor。