Swift:放置在tableviewcell中的图像不可见

时间:2017-08-11 01:27:09

标签: ios swift swift3

enter image description here enter image description here

enter image description here

enter image description here

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

  let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "approve_cell");
  let event = self.events[indexPath.row];
  cell.textLabel?.text = event.name;
  return cell;
 }

我在tableviewcell中放置了2张图片和一个标签。当我运行应用程序时,图像不可见。可能是什么原因?

4 个答案:

答案 0 :(得分:2)

检查您是否使用UITableViewCell的基本样式,因为如果您那样,那么样式只包含标签..没有图像视图。将其更改为副标题或其中一个细节。

供参考,请参阅:enter image description here

答案 1 :(得分:2)

您可能忘记设置图片视图的AutoLayoutConstraints。您可以通过情节提要或通过代码向该图像视图添加约束。另一种方法是在-(void)viewDidLayoutSubviews中设置图片视图的框架,因为当您使用自动布局时,如果这些视图的约束不能满足系统的要求,那么这些视图的布局将是不确定的。计算需要。因此,您应该设置正确的约束,或者在排列所有其他约束视图之后为这些未定义的视图提供特定的框架。

答案 2 :(得分:1)

您需要设置Autolayout或使用Autoresizing。对于autolayout,只需固定正确的前导,尾随,顶部和底部约束。

答案 3 :(得分:1)

您在故事板中创建单元格,但您从不使用从故事板创建的此单元格。相反,您可以通过UITableViewCell指定的初始化程序手动创建它,而不使用它的覆盖布局方法。

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

  let cell = tableView.dequeueReusableCell(withIdentifier: "approve_cell", for: indexPath)

  let event = self.events[indexPath.row];
  cell.textLabel?.text = event.name;
  return cell;
 }