我有两个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
行,那么大小调整就可以了,但是我的整个单词标签完全丢失了。我可以为它添加边框以在预览中查看它,或调试视图层次结构,它完全缺失。添加sizeToFit
,我的标签会出现,但宽度会被忽略(我理解的那部分)。
我考虑过添加约束来完成这项工作,但我不确定这是否是最好的策略。
你会建议你做些什么呢?
答案 0 :(得分:2)
正如@Robotic Cat所提到的,您正在寻找的是自动布局。
自动布局允许您以编程方式和/或故事板中设置视图约束。这些约束允许您根据屏幕大小,视图边界/框架,相对宽度/高度以及许多其他内容创建自适应布局。为了帮助您入门,我提供了一个关于Auto Layout的Ray Wenderlich教程,以及一些有用的Apple文档。