我有两个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大约一半的空间(减去一些填充)。wordLabel在左边。englishWordLabel在右边。
现在让我震惊的是,如果我删除sizeToFit行,那么大小就可以了,但是我的整个wordLabel完全丢失了。我可以给它添加一个边框以在预览中查看它,或者调试视图层次结构,但它完全丢失了。添加sizeToFit,我的标签出现,但宽度被忽略(我理解的部分)。
我想增加一些限制来完成这项工作,但我不确定这是否是最好的策略。
你建议做什么来完成这个任务?

最佳答案

正如@Robotic Cat提到的,看起来你要找的是自动布局。
自动布局允许您以编程方式和/或在情节提要中设置视图约束。这些约束允许您基于屏幕大小、视图边界/帧、相对宽度/高度和许多其他内容创建自适应布局。为了让你开始,我提供了一个关于自动布局的RayWenderlich教程,以及一些有用的苹果文档。
Apple's Auto Layout Guide
Ray Wenderlich Auto Layout Tutorial

关于ios - 如何使两个UILabel并排显示?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37191125/

10-09 08:05