我正在尝试创建一个包含一个包含2个标签和文本视图的图像视图的视图。每个元素的内容都将从SQLite数据库中读取,所以我想使用Xcode 5的自动布局来更改每个UI元素的高度以及它们之间的距离,根据每个元素的内容有效地使用屏幕空间尽可能。我有一些条件,我试图通过界面构建器中的自动布局强制执行,但我不知道如何实现它们:
我能够以编程方式完成所有这些操作,但我想使用自动布局,以便视图可以轻松适应屏幕大小的变化并防止错误。我对自动布局的经验很少,而且我遇到了在这种情况下我需要的复杂规格。为了使我想要创建的内容更清晰,这里是.xib文件的屏幕截图:
感谢您的帮助!
答案 0 :(得分:5)
http://www.techotopia.com/index.php/Implementing_iOS_6_Auto_Layout_Constraints_in_Code
请参阅本网站, 可能会得到你的解决方案
答案 1 :(得分:0)
看看Autolayout Visual Format Language。他们在去年的一些WWDC视频中讨论了这个问题。
这不完整,但您需要垂直和水平定义约束。这是完整的,但希望能给你一个想法让你开始。
// Vertical alignment should be centered
NSArray *constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"V:|[_imageView]-[_label1]-[_textBlock1]-[label2]-[textBlock2]-|"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:viewsDictionary];
// Tell the views/text blocks to take the entire width. The labels will be fine centered on them I think
NSArray *constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-[_imageView]-|"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:viewsDictionary];
NSArray *constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-[_textBlock1]-|"
options:nil
metrics:nil
views:viewsDictionary];
NSArray *constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-[_textBlock2]-|"
options:nil
metrics:nil
views:viewsDictionary];