2017-04-02 19 views
5

我有一个名为CCLineupTableViewCell定制UITableViewCell,看起来像这样:斯威夫特3:的UILabel不是在自定义显示的UITableViewCell

@IBOutlet weak var artistNameLabel: UILabel! 
@IBOutlet weak var artistValuationLabel: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 

} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

我接入小区中cellForRowAt indexPath: IndexPath方法,像这样:

let cell = tableView.dequeueReusableCell(withIdentifier: "HomeCell", for: indexPath) as! CCLineupTableViewCell 

我自定义单元格设置是像这样:

enter image description here

enter image description here

正如您可以看到它在IB和代码中设置正确。奇怪的是,第一个标签artistNameLabel可通过cellForRowAt indexPath: IndexPath访问,并且完美地工作。然而,artistValuationLabel尽管通过故事板设置了默认文字,但它甚至不会显示出来。

编辑:

我已经添加了从笔尖约束的图片。它固定在单元的右侧,顶部和底部(以及纵横比)。

enter image description here

+1

您是否检查过'UITableViewCell'约束,可能因为错误约束而未显示标签。 –

+0

@Santiagocarmonagonzález约束条件不错,但我会发布它们。 –

+0

尝试设置该标签的值高于**内容中的“水平”属性中的'artistNameLabel'值压缩阻力优先**或恒定约束宽度值。 –

回答

3

你的错误是在你没有设置的约束错误。

添加宽度约束以确保artistValuationLabel将有空间显示。

+0

任何人都知道为什么会发生这种情况? 'adjustsFontSizeToFitWidth'属性被设置为'true'。希望这将得到修正,因为'aspectRatio'被正确设置(所有其他约束)。如果我不问这个问题,我无法知道什么是错的。 –

+0

可能发生这种情况,因为'artistNameLabel'的宽度优先级高于'artistValuationLabel',所以当名称非常长时,标签会将空间“保留”到另一个标签。 当您将特定宽度设置为'artistValuationLabel'时,它具有1000个优先级,所以此空间将始终保留。 –

+0

但是这些标签并没有重叠,因为我已经改变了它,所以有一个阻止这个的约束。我拿出宽度来看看它是否会起作用,但它仍然不行,所以我不得不把它放回去。 –

0

由于宽度限制不当,这件事发生了。要么你需要添加比例宽度,要么你应该在你设计的那个设备上运行。

+0

你也可以给左边的约束。 –