uitableviewcell动态标签宽度与VFL

时间:2017-07-27 02:45:14

标签: ios uitableview autolayout visual-format-language

我需要在表格视图单元格中放置标签和图像,使图像应紧邻标签放置,但在单元格可见性内。即,它们应该如下所示,

  1. 当文字较小或在一行内时,图像可以立即在标签旁边。例如 -
  2. Smaller text (image)
    
    1. 当文本超出一行时,图像可能位于单元格的边缘,因为标签长度已经扩展到了长度。例如 -
    2. Multiline text multi-line text multi-line
      text multi-line text multi-line text multi  (image) 
      multi-line text multi-line text
      

      我正在尝试使用VFL来实现这一点,而没有故事板或笔尖。

      我尝试了什么:

      1. "H:|-[label]-[image(==20)]-|"  , "V:|-[label]-|"
      

      这使得图像始终附着到边缘,因此壳体1发生故障,这需要标签附近的图像。例如 -

      案例1:

      Smaller text                                (image)    (not ok)
      

      案例2:

      Multiline text multi-line text multi-line
      text multi-line text multi-line text multi  (image)    (ok)
      multi-line text multi-line text
      
      2. "H:|-[label]-[image(==20)]" , "V:|-[label]-|"
      

      这使得文本附近的图像对于案例1是可以的,而对于案例2而言则不能将文本包装到多行然后并且文本延伸超出单元格宽度。例如 -

      案例1:

      Smaller text (image)             (ok)
      

      案例2:

      Multiline text multi-line text multi-line text multi...    
      (not ok - text not wrapped to multiple lines, remaining text and image hidden) 
      

      如何解决这个问题?为某些限制设定优先级会有所帮助吗?

1 个答案:

答案 0 :(得分:1)

我对VFL没有多少经验,但我知道Autolayout所以我可以给你一个如何解决的想法

我见过你们两次尝试

1. "H:|-[label]-[image(==20)]-|"  , "V:|-[label]-|"
2. "H:|-[label]-[image(==20)]" , "V:|-[label]-|"

首先尝试在尾随

上修复图像

第二次尝试使用带标签的固定图像

什么是组合解决方案?

  

您明确的要求是说您需要附带标签尾随的图像也要注意拖尾到superview

这个问题的明确解决方案是

你必须提供imageView跟踪可能是这段代码[image(==20)]-|应改为大于或等于 0常量的关系

它将告诉autolayout引擎保持Min 0与superview尾随的距离

抱歉,由于我对VFL没有多少经验,我无法给你准确的代码

希望它对你有所帮助