带图像和文本字段的Autolayout表格单元格?

时间:2015-05-11 22:34:04

标签: ios uitableview autolayout

我正在寻找带有照片的表格视图单元格并使用自动布局包装文本。我通过自动布局管理了很多,但我对如何做到这一点感到茫然。

┌─────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌────────────────────────────────────┐ │
│ │          │ │ Title (might wrap)                 │ │
│ │          │ └────────────────────────────────────┘ │
│ │  Photo   │ ┌────────────────────────────────────┐ │
│ │          │ │ Body text. May wrap, may contain   │ │
│ │          │ │ multiple lines.                    │ │
│ │          │ └────────────────────────────────────┘ │
│ └──────────┘                                        │
└─────────────────────────────────────────────────────┘

随着文字的扩展,我希望将照片保留在左上方并展开单元格。但是,单元格不应低于显示照片所需的最小值(带边距)。

┌─────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌────────────────────────────────────┐ │
│ │          │ │ Title (might wrap)                 │ │
│ │          │ │ Maybe even to two lines.           │ │
│ │  Photo   │ └────────────────────────────────────┘ │
│ │          │ ┌────────────────────────────────────┐ │
│ │          │ │ Body text. May wrap, may contain   │ │
│ │          │ │ multiple lines.                    │ │
│ └──────────┘ │                                    │ │
│              │ Text could require more vertical   │ │
│              │ space than the photo.              │ │
│              └────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

我需要iOS 8或更高版本。

我已尝试仅使用列出的三个视图执行此操作,并将左项和右项放在两个视图中。我尝试的每个组合似乎都忽略了照片的最小尺寸。

(顺便说一句,对于任何好奇的人:通过Monodraw的图片。)

1 个答案:

答案 0 :(得分:2)

尝试拥有以下关系:

照片:

  • width = X
  • height = Y
  • left = Cell + Z
  • top = Cell + Z

标题:

  • 左=照片+ Z
  • right = Cell - Z
  • top = Cell + Z

标签将根据内容自动计算高度

身体:

  • 左=标题
  • 右=标题
  • Top = Title.Bottom + Z

细胞:(这是重要的部分)

  • Bottom> =(等于或大于)Body.Bottom + Z
  • Bottom> = Photo.Bottom + Z

这会强制单元格始终高于图像+偏移量或高于标签+偏移量