Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何向自定义UITableViewCell添加约束_Swift_Constraints_Tableview_Cell - Fatal编程技术网

Swift 如何向自定义UITableViewCell添加约束

Swift 如何向自定义UITableViewCell添加约束,swift,constraints,tableview,cell,Swift,Constraints,Tableview,Cell,我已经为我的表视图创建了一个自定义单元格,它工作正常,只是图像视图不能正确对齐 有没有办法向自定义单元视图添加约束?以编程方式还是其他方式 这就是我的手机在故事板中的样子——这就是我希望在运行时实现的: 但当我演示应用程序时,会发生以下情况: 下面是故事板中的另一幅图像: 视图控制器/w表视图 单元视图控制器 假设您从视图控制器开始,将表和单元格拖到表中 在ViewController中:UIViewController…{ @IBOutlet weak var resultsTable:

我已经为我的表视图创建了一个自定义单元格,它工作正常,只是图像视图不能正确对齐

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

这就是我的手机在故事板中的样子——这就是我希望在运行时实现的:

但当我演示应用程序时,会发生以下情况:

下面是故事板中的另一幅图像:

视图控制器/w表视图 单元视图控制器
假设您从视图控制器开始,将表和单元格拖到表中

在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 #
}

您只需正确设置约束即可。事实上,即使
添加缺少的约束
重置为建议的约束
很方便,但有时它们不知道您想要什么,因此结果也不可能总是您所期望的

您可能希望在这里执行以下操作

对于您,将问题标签设置在其容器的中心Y,并将其前导空间设置为superview。如下所示:

然后对于您的图像,您希望将其也设置在容器的中心Y,并在其上设置1:1的比率。如下所示:

请注意,如果您不希望图像放大(如果您在某些设备上设置了较大的单元格),您可能还需要检查
宽度
高度

您现在应该有这样的内容:

结果是:

如果有帮助,请告诉我


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

你是否尝试在故事板中设置一些约束条件(牵引空间、高度/宽度/比率等)?顺便说一下,如果你只需要添加一个“✔︎" 你可能想看看
UITableViewCellAccessoryCheckMark
,它看起来可能会更好。嘿,我确实尝试在故事板中添加约束,但没有起作用。我没有看过UITableViewCellAccessoryCheckMark,但我正在创建一个测验应用程序,勾号表示正确或错误的答案,所以我认为ught使其明亮会更好。对于您自己的图像没有问题。您可以向我们显示:您的tableView和customCell的当前UI树(即:tableView>contentview>…)以及您尝试使用的约束?我尝试的约束是-添加缺少的约束,也可以在“Pin”>“添加新约束”下手动添加。对于UI树,我不能100%确定我是否理解您希望看到的内容,抱歉。我正在谈论的树:。无论如何,几分钟后发布答案。谢谢,我有一个TableViewCe控制器ll和我的TableView位于ViewController中,而不是UITableViewController中。你是否将表格拖到了ViewController中?如果是,你是否将其连接到了ViewController?在示例中,我从VC开始添加了表格和单元格。是的,我将表格拖到了ViewController中。它是连接的,因为所有表格都无法对齐。我将测试示例稍等!非常感谢。您好,我已经更新了我的问题以包含我的项目代码。我无法使其正常工作。我收到了致命错误:在使用错误请求展开可选值时意外发现零。这与单元格或图像放置无关。您正在展开(!)(表示存在某些内容)当您的代码中没有任何信息时。您必须在代码中的其他地方查找该问题。非常感谢您的帮助。我已设法使其工作,但现在我遇到另一个问题。分隔单元格的行不会一直延伸到视图的一侧。这是自iOS 7以来的默认行为。它应该您可以直接从故事板上进行自定义,就像您在这里看到的:。但是!iOS 8有一个小问题。因此,您实际上需要以编程方式进行此操作(如果需要,请查看链接上的答案和其他类似问题)。
@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)
}
}
@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 #
}