Tag: 自动布局

iOS Autolayout – 未在viewDidLayoutSubviews中设置帧大小

我正在使用Autolayout在iOS 8的键盘上放置button的视图。 当我使用约束来更改布局时,所有内容都正确显示在屏幕上,但是当我想知道视图的帧大小时,我无法获得正确的大小。 例如:我按一个键,键盘布局改变,根据我的约束布局一切。 然后我想知道屏幕上的任何button的大小 – 我在“viewDidLayoutSubviews”中做到这一点,并在控制台中得到的结果: 2014-10-29 12:27:09.088 Keyboard[2193:60674] view did layout subviews 2014-10-29 12:27:09.088 Keyboard[2193:60674] {{inf, inf}, {0, 0}} 该button具有正确的大小和正确的位置,但是当试图获取其框架大小没有设置。 我不得不在viewDidLayoutSubviews中工作时,我的代码放在哪里? 我在stackoverflow和其他网页上发现了很多问题,但是没有一个覆盖我的问题。

如何加载取决于iOS版本的多个故事板文件? (5和6)

我有一个标签栏控制器应用程序,我试图使iOS 6和iOS 5兼容。对于iOS 6,我使用自动布局。 但是,当试图在iOS 5上运行时,由于不识别NSLayoutConstraints,我得到一个错误。 从我可以告诉,我需要使用不启用自动布局不同的故事板。 我已经将故事板复制到新的故事板,但不知道如何设置在应用程序委托中使用哪个故事板。 这是什么代码?

AutoLayout链接两个UILabel具有相同的字体大小

我有两个相邻的UILabel左右调整,看起来像下面。 |-Some text left adjusted———-some other text right adjusted-| 两个标签都具有adjustsFontSizeToFitWidth = YES,并使用以下约束互相链接 [NSLayoutConstraint constraintWithItem:_rightLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:_leftLabel attribute:NSLayoutAttributeRight multiplier:1 constant:10] 所以,他们占用尽可能多的空间,如果没有足够的原始字体大小的空间,它将降低adjustsFontSizeToFitWidth,以便没有文本被截断。 我的问题是,当由于长文本而需要降低字体大小时,我希望另一个标签降低其字体大小,以使两者的大小相同,而不是大小相等的两倍。 我想约束的字体大小,以配合,但唉,我不知道如何做到这一点,任何想法?

使用自动布局缩放UIScrollView

我试图使用自动布局来实现一个UIScrollView的新方法 。 我已经从内部视图设置约束到滚动视图,以便它可以自动计算自己的contentSize ,这就像一个魅力 – 除了当我试图放大或缩小时,所有的地狱崩溃。 我甚至不能正确地描述发生了什么,除了说内心的看法“搞砸了”之外。 你可以在这里看到这个行为的例子(不是我的项目;你必须设置滚动视图的maximumZoomScale缩放maximumZoomScale和实现-viewForZoomingInScrollView:在缩放将工作)。 有没有其他人遇到这种行为? 目前有什么办法可以缩放UIScrollView来处理自动布局,而不必自己重新实现缩放行为?

iOS – 以编程方式使用自动布局将UIView放置在超级视图的中心位置

你如何以编程方式设置一个UIView使用自动布局在其超视图的中心? UIButton* viewObj = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [viewObj setTranslatesAutoresizingMaskIntoConstraints:NO]; [viewObj setBackgroundColor:[UIColor greenColor]]; [self.view addSubview:viewObj]; NSLayoutConstraint* cn = [NSLayoutConstraint constraintWithItem:viewObj attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]; [self.view addConstraint:cn]; cn = [NSLayoutConstraint constraintWithItem:viewObj attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0]; [self.view addConstraint:cn]; 上面的代码适用于我的UIButton,但我有麻烦取代第一行的东西,适用于UIView。 我试过了 UIView* viewObj = [UIView alloc] initWithFrame:CGRectZero]; 但是这个视图并没有在模拟器中显示出来。 有什么build议么? 谢谢!

创build一个自动布局约束的3×3网格

Xcode已经说过没有布局的问题,但你可以看到有。 我已经尝试了一切。 苹果公司的文档,YouTube,谷歌等。看来我做对了,但也许我正在做的事情或其他事情正在导致这些问题。 在尝试了所有的东西之后,我终于让Xcode add missing constraints ,这是迄今为止最好的结果。 我有9个button到9 UIImages,所以我必须做我做button的同样的事情,我做UIImages。 我暂时把UIImage放在button的顶部,这样我就可以更容易地看到我在做什么。 我有2个截图。 请指教。 开始 这是在使用Xcode的add missing constraints选项。 Sorta我想要什么,但没有雪茄。

如何在运行时更改标签约束?

我有一个表格视图和一个单元格里面。 单元格包含三个标签:标题标签和两个彼此相对的标签。 有时,如果不包含数据,并且将“标题标签”的“顶部空间到容器”更改为“居中到容器”,则需要隐藏下面的两个标签。 当然,当两个标签包含数据时,还原约束条件。 下面是一个简单的演示项目的截图,只是为了展示这个想法: 更新 Max MacLeod答案指向正确的方向。 诀窍是在隐藏第一个和第二个标签时,将标题标签向下推。 因此,我们需要将底部空间设置为第一个和第二个标签的容器视图,而不是为标题标签的容器视图创build顶部空间。 通过高度出口(第一和第二标签的高度约束)并将它们的常数值设置为零(并且在取消隐藏时设置回值)来隐藏/取消隐藏。 我还将源代码示例上传到Github 。

在以编程方式创build视图时,我应该在哪里设置自动布局约束

我看到设置约束的不同示例。 有些将它们设置在viewDidLoad / loadView (添加子视图之后)。 其他人在方法updateViewConstraints设置它们,这个方法被viewDidAppear调用。 当我尝试在updateViewContraints设置约束时,可能会出现布局跳动,例如视图出现之前的轻微延迟。 另外,如果我使用这种方法,我应该先清除现有的约束,即[self.view [removeConstraints:self.view.constraints] ?

隐藏另一个button时居中一个button的约束

我有一个视图控制器上的两个button。 它们高度和宽度相等,间隔很好,以屏幕为中心。 问题是,在某些情况下,其中一个button是隐藏的。 当其中一个button被隐藏时,我想让另一个button居中。 对于我的生活,我一直无法弄清楚如何configuration约束来实现这一点。 我可以移动可见button,使其居中,如果另一个button被隐藏,但似乎只能加载视图后,这使得button“跳”,看起来很愚蠢。

UIScrollview Autolayout问题

我有一个自动布局(也许)和我的滚动查看问题! 我的问题 我向下滚动 然后我推到另一个视图 3.然后我回去,滚动视图看起来像这样,我不能滚动到最高点(我在滚动视图的弹跳看到它) 有谁能够帮助我?