如何让两个UILabel并排出现?

时间:2016-05-12 15:17:25

标签: ios swift uitableview uilabel constraints

我有两个UILabel:

            let wordLabel               = UILabel(frame: CGRectMake(0,0,(self.view.frame.width - 30) / 2,0))
            wordLabel.text              = word.valueForKey("sanskrit") as? Stringsize: 16)
            wordLabel.numberOfLines     = 0
            wordLabel.sizeToFit()
            wordLabel.translatesAutoresizingMaskIntoConstraints = false

            let englishWordLabel           = UILabel(frame: CGRectMake(wordLabel.frame.width + 10,0,labelWidth,0))
            englishWordLabel.text          = word.valueForKey("english") as? Stringsize: 16)
            englishWordLabel.numberOfLines = 0
            englishWordLabel.sizeToFit()
            englishWordLabel.lineBreakMode = .ByWordWrapping
            englishWordLabel.translatesAutoresizingMaskIntoConstraints = false

基本上,我在UITableView的单元格中堆积了一些数组。

为了消除它,我想给每个UILabel大约一半的空间(减去一些填充)。左边是wordLabelenglishWordLabel在右边。

现在让我感到震惊的是,如果我删除sizeToFit行,那么大小调整就可以了,但是我的整个单词标签完全丢失了。我可以为它添加边框以在预览中查看它,或调试视图层次结构,它完全缺失。添加sizeToFit,我的标签会出现,但宽度会被忽略(我理解的那部分)。

我考虑过添加约束来完成这项工作,但我不确定这是否是最好的策略。

你会建议你做些什么呢?

1 个答案:

答案 0 :(得分:2)

正如@Robotic Cat所提到的,您正在寻找的是自动布局

自动布局允许您以编程方式和/或故事板中设置视图约束。这些约束允许您根据屏幕大小,视图边界/框架,相对宽度/高度以及许多其他内容创建自适应布局。为了帮助您入门,我提供了一个关于Auto Layout的Ray Wenderlich教程,以及一些有用的Apple文档。