如何为自定义的UITableViewCell添加约束

11 浏览
0 Comments

如何为自定义的UITableViewCell添加约束

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

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

这是我在故事板中的单元格外观 - 这是我希望在运行时实现的效果:

但是当我演示应用程序时,会出现以下情况:

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

带有 TableView 的视图控制器

@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)

}

单元格视图控制器

override func awakeFromNib() {

let theWidth = UIScreen.mainScreen().bounds.width

contentView.frame = CGRectMake(0,0, theWidth, 64)

answerImage.center = CGPointMake(115, 15)

}

0
0 Comments

如何将约束添加到自定义的UITableViewCell

在这个问题中,出现的原因是在UITableViewCell文件中的awakeFromNib()方法中,对于imageView属性进行了位置设置,但是没有添加约束,导致在运行时出现布局错误。解决方法是添加约束来确保imageView的位置正确。

解决方法如下:

在UITableViewCell文件中的awakeFromNib()方法中,添加约束来确保imageView的位置正确。具体代码如下:

override func awakeFromNib() {

let theWidth = UIScreen.mainScreen().bounds.width

contentView.translatesAutoresizingMaskIntoConstraints = false

imageView.translatesAutoresizingMaskIntoConstraints = false

contentView.topAnchor.constraintEqualToAnchor(topAnchor).isActive = true

contentView.leadingAnchor.constraintEqualToAnchor(leadingAnchor).isActive = true

contentView.trailingAnchor.constraintEqualToAnchor(trailingAnchor).isActive = true

contentView.bottomAnchor.constraintEqualToAnchor(bottomAnchor).isActive = true

imageView.centerXAnchor.constraintEqualToAnchor(contentView.leadingAnchor, constant: 115).isActive = true

imageView.centerYAnchor.constraintEqualToAnchor(contentView.topAnchor, constant: 15).isActive = true

}

通过添加约束来确保imageView的位置正确,可以解决布局错误的问题。

以上是关于如何将约束添加到自定义的UITableViewCell的解决方法。在代码中,我们通过添加约束来确保imageView的位置正确,从而解决了布局错误的问题。

0
0 Comments

问题出现的原因是默认情况下,自定义的UITableViewCell在添加约束时可能会出现一些问题,导致显示效果不符合预期。解决方法是正确设置约束。

首先,对于问题标签,将其设置在其容器的垂直中心,并将其前导间距设置为父视图。如下所示:

问题标签.centerY = 容器.centerY

问题标签.leadingSpace = 父视图

然后,对于图像,您还需要将其设置在其容器的垂直中心,并在其上设置1:1的比例。如下所示:

图像.centerY = 容器.centerY

图像.aspectRatio = 1:1

注意,如果您不希望图像在某些设备上放大(如果您设置了更大的单元格),您还可以检查宽度和高度。

完成上述设置后,您应该得到如下所示的效果:

Storyboard

最终的显示效果应该类似于以下图像:

Screen

如果以上方法没有解决您的问题,请参考提供的链接中的其他答案,您可能需要在代码中进行一些自定义设置。

0