如何向Custom UITableViewCell添加约束

时间:2015-06-10 19:24:05

标签: swift constraints tableview cell

我为表视图创建了一个自定义单元格,除了我的图像视图无法正确对齐外,它工作正常。

有没有办法向自定义单元格视图添加约束?以编程方式还是其他方式?

这就是我的单元格在故事板中的样子 - 这是我希望在运行时实现的:

但是,当我演示应用程序时,会发生这种情况:

这是故事板中的另一张图片:

查看控制器/ w TableView

SELECT ... FROM table 1 LEFT JOIN table 4 (left join with table 5 with table 4???)

Cell View Controller

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()


    println(questions)
    println(finalResults)

    let theWidth = view.frame.size.width
    let theHeight = view.frame.size.height

    tableView.frame = CGRectMake(0,0, theHeight, theWidth)
}

2 个答案:

答案 0 :(得分:6)

您只需要正确设置约束。事实上,即使Add Missing ConstraintsReset to Suggested Constraints有用也有时他们不知道你想要什么,因此结果并不总是你所期望的。

您可能想要做的是以下内容。

对于您的问题标签,将其设置在其容器的中心Y,并将其设置为超级视图的前导空间。像这样:

Center Y Leading Space

然后对于你的图像,你也想把它设置在它的容器的中心Y,并在它上面设置1:1的比例。像这样:

Center Y Aspect Ratio

请注意,如果您不希望图像升级(如果您在某些设备上设置较大的单元格),则可能还需要检查widthheight

你现在应该有类似的东西:

Storyboard

结果:

Screen

如果有帮助,请告诉我。

PS:我没有你的图像,所以我只是在uiimageview上设置背景颜色

答案 1 :(得分:0)

假设您开始使用视图控制器,将表格和单元格拖到表格中......

ViewController中的

:UIViewController ... {

@IBOutlet weak var resultsTable: UITableView! // connect to tableView

override func viewDidLoad() {
  super.viewDidLoad()

  let theWidth = view.frame.size.width
  let theHeight = view.frame.size.height

  resultsTable.frame = CGRectMake(0,0, theWidth, theHeight)
}
}
在UITableViewCell文件中

@IBOutlet weak var imageView: UIImageView!

override func awakeFromNib() {

  let theWidth = UIScreen.mainScreen().bounds.width
  contentView.frame = CGRectMake(0,0 theWidth, 64)

  imageView.center = CGPointMake(115, 15) //mess around with these #
}