标签: autolayout

UIStackView"无法同时满足约束"对"压扁"隐藏视图的影响

当我的UIStackView"行"被压扁时,它们会AutoLayout发出警告.但是,它们显示正常,除了这些类型的记录之外别无其他错误:

无法同时满足约束.可能至少下列列表中的一个约束是您不想要的约束.试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它.(注意:如果您发现NSAutoresizingMaskLayoutConstraints自己不明白,请参阅该UIView物业的文件translatesAutoresizingMaskIntoConstraints)(

所以,我不知道如何解决这个问题,但它似乎并没有破坏任何东西,除了烦恼.

有谁知道如何解决它?有趣的是,布局约束经常使用"UISV隐藏"进行标记,这表明它可能应该忽略子视图的高度最小值或者此实例中的某些内容?

uikit ios autolayout ios9 uistackview

90
推荐指数
3
解决办法
2万
查看次数

Interface Builder中的"宽度等于高度"约束

我找不到在Interface Builder中创建'square'约束的方法,意思是'width equals height'.我想可以通过编程方式添加这样的约束.我可以在IB做些什么吗?也许我只是看不到它?这似乎微不足道,但我找不到它.

interface-builder ios autolayout nslayoutconstraint

89
推荐指数
1
解决办法
4万
查看次数

iOS Autolayout:两个宽度相等的按钮,并排

我目前在使用AutoLayout时遇到困难.我正在使用界面构建器,并尝试将两个宽度相等的按钮并排放置,如下图所示.

客观布局

从下面的预览图像中,我的titleImage已被正确约束并正确显示,但按钮不是.我已经通过将按钮1​​与titleImage的前沿对齐来实验,而button2与titleImage的后缘对齐,但是此时两个按钮之间的宽度分布变得偏斜,如下所示.

问题场景

我的目标是了解缺少哪些约束,并且应该应用于两个按钮以保持相等的宽度,而不管设备如何.如果可能的话,我想通过接口构建器而不是其他代码来实现这一点.

iphone xcode ios autolayout

88
推荐指数
3
解决办法
5万
查看次数

以编程方式创建布局约束

我知道很多人已经就此问了很多问题,但即使有了答案,我也无法让它发挥作用.

当我在故事板上处理约束时,它很容易,但在代码中我很难.例如,我尝试使视图保持在右侧,并根据屏幕方向具有屏幕高度.这是我的代码:

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 748)];
myView.backgroundColor = [UIColor redColor];
[self.view addSubview:myView];
[self.view addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"V:|-[myView(>=748)]-|"
    options:0 metrics:nil
    views:NSDictionaryOfVariableBindings(myView)]];
Run Code Online (Sandbox Code Playgroud)

它不满足某些约束.我没有看到什么是错的.另外,为什么我不能像使用像self.myView本地变量这样的属性myView

constraints objective-c ios autolayout

84
推荐指数
5
解决办法
15万
查看次数

使用autolayout动态更改子视图后调整superview的大小

这个调整大小的超级视图的悬念我不能满足上帝的爱.

我有一个UIView *superview 4 UILabels.2用作另外2个的标题.

所有4个内容都来自数据库.

SizeToFitvs SizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,传球UILayoutFittingCompressedSize或者UILayoutFittingExpandedSize.

我以编程方式使用autolayout并将superview高度设置为等于或大于虚拟数字.

我在哪里以及如何使用这些SizeToFitvs sizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,传递UILayoutFittingCompressedSize或者UILayoutFittingExpandedSize.我已经在堆栈上阅读了很多提示但最终没有任何结果.

我是否需要在某处特定的情况下重新计算superview的约束.Maby在其控制器类中将高度设置为'@ property`并删除并读取它?Atm我试图将所有东西都放在一起然后放一些.我仍然得到相同大小的最终结果,虚拟高度和文字漂浮在外面.甚至在子视图上设置clipsToBound之后.

我正在抓我的头发..帮助

objective-c uiview autoresize ios autolayout

83
推荐指数
4
解决办法
7万
查看次数

如何使用autolayout设置tableHeaderView(UITableView)的高度?

在过去的3到4个小时里,我一直把头撞在墙上,我似乎无法弄明白.我有一个UIViewController,里面有一个全屏UITableView(屏幕上有一些其他的东西,这就是为什么我不能使用UITableViewController)我想让我的tableHeaderView用autolayout调整大小.不用说,它不合作.

见下面的截图.

在此输入图像描述

因为overviewLabel(例如"此处列出概述信息."文本)具有动态内容,所以我使用autolayout来调整它的大小和它的超级视图.除了tableHeaderView之外,我已经很好地调整了所有内容,它位于层次结构中的Paralax Table View之下.

我发现调整标题视图大小的唯一方法是以编程方式,使用以下代码:

CGRect headerFrame = self.headerView.frame;
headerFrame.size.height = headerFrameHeight;
self.headerView.frame = headerFrame;
[self.listTableView setTableHeaderView:self.headerView];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,headerFrameHeight是tableViewHeader高度的手动计算,如下所示(innerHeaderView是白色区域,或者第二个"View",headerView是tableHeaderView):

CGFloat startingY = self.innerHeaderView.frame.origin.y + self.overviewLabel.frame.origin.y;
CGRect overviewSize = [self.overviewLabel.text
                       boundingRectWithSize:CGSizeMake(290.f, CGFLOAT_MAX)
                       options:NSStringDrawingUsesLineFragmentOrigin
                       attributes:@{NSFontAttributeName: self.overviewLabel.font}
                       context:nil];
CGFloat overviewHeight = overviewSize.size.height;
CGFloat overviewPadding = ([self.overviewLabel.text length] > 0) ? 10 : 0; // If there's no overviewText, eliminate the padding in the overall height.
CGFloat headerFrameHeight = ceilf(startingY + overviewHeight + overviewPadding + 21.f + 10.f);
Run Code Online (Sandbox Code Playgroud)

手动计算有效,但如果将来发生变化,它会很笨拙并容易出错.我想要做的是让tableHeaderView根据提供的约束自动调整大小,就像你可以在其他地方一样.但对于我的生活,我无法弄明白.

关于这个问题有几个关于此的帖子,但没有一个是明确的,最后让我更加困惑.这里有几个:

uitableview ios autolayout ios7

83
推荐指数
4
解决办法
6万
查看次数

在autolayout中居中子视图的X会抛出"没有为约束做好准备"

我有一个自定义的UIView子类,它通过一个nib进行初始化.

-awakeFromNib,我正在创建一个子视图,并试图将其置于超级视图中.

[self setInteralView: [[UIView alloc] init]];
[[self internalView] addConstraint: [NSLayoutConstraint constraintWithItem: [self internalView]
                                                                 attribute: NSLayoutAttributeCenterX
                                                                 relatedBy: NSLayoutRelationEqual
                                                                    toItem: self
                                                                 attribute: NSLayoutAttributeCenterX
                                                                multiplier: 1
                                                                  constant: 0]];
Run Code Online (Sandbox Code Playgroud)

这会中断,并导致以下输出:

2013-08-11 17:58:29.628 MyApp[32414:a0b] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0xc1dcc80 UIView:0xc132a40.centerX == MyView:0xc1315a0.centerX>
    When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break …
Run Code Online (Sandbox Code Playgroud)

objective-c ios autolayout uiview-hierarchy nslayoutconstraint

81
推荐指数
5
解决办法
5万
查看次数

宽度和高度是否以编程方式使用autolayout等于superView?

我一直在网上寻找很多片段,我仍然无法找到问题的答案.我的问题是我有一个scrollView(SV),我想以编程方式在scrollView(SV)中添加一个按钮,其superview的相同宽度和高度是scrollView(SV),这样当用户旋转设备按钮时将具有相同的框架scrollView(SV).如何做NSLayout/NSLayoutConstraint?谢谢

dynamic ios autolayout nslayoutconstraint swift

80
推荐指数
6
解决办法
8万
查看次数

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

我看到设置约束的不同示例.有些人将它们设置在viewDidLoad/中loadView(在添加子视图之后).其他人在方法中设置它们updateViewConstraints,它们被调用viewDidAppear.

当我尝试设置约束时updateViewContraints,可能会出现跳转到布局,例如在视图出现之前稍有延迟.另外,如果我使用这种方法,我应该首先清除现有的约束[self.view [removeConstraints:self.view.constraints]吗?

cocoa-touch ios autolayout

78
推荐指数
3
解决办法
4万
查看次数

如何以编程方式更新UIView的恒定高度约束?

我有一个UIView和我使用Xcode Interface Builder设置约束.

现在我需要以UIView's编程方式更新高度常量.

有一个功能myUIView.updateConstraints(),但我不知道如何使用它.

xcode autolayout nslayoutconstraint swift ios-autolayout

78
推荐指数
8
解决办法
10万
查看次数