Tag: nslayoutconstraint

在代码中设置的约束不会反映在输出(Autolayout iOS)

我有两个视图,我已经采取了故事板,但我没有在故事板中设置任何布局。我想设置它们的代码。所以这就是我所做的: 我读了一个视图的autoResizingMask属性和'translatesAutoResizingMaskIntoConstraints'。所以将'translatesAutoResizingMaskIntoConstraints'设置为'NO'是有道理的。所以我已经做了,但仍然无法以编程方式设置约束。现在,由于一些约束被自动设置在故事板上,当我们从故事板中获取观点时,我尝试了: [self.view removeConstraints:[self.view constraints]]; 这样做后,它会从超级视图(即self.view)中删除所有的默认约束。但是我仍然无法设置代码约束。我该怎么办?我需要一些指导。 这是我一直在使用的代码: [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; NSLayoutConstraint *layouts1 = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:_yellowView attribute:NSLayoutAttributeWidth multiplier:3.0f constant:100.0f]; [self.view addConstraint:layouts1];

我添加约束条件到底是哪个超级视图?

假设我有3个观点 A|———-| | B|—–| | | | C ▢ | | | |_____| | |__________| 如果我有一个约束,涉及视图B和视图C. 文档build议增加查看C将是非法的: 约束只能包含在接收视图范围内的视图。 具体来说,涉及的任何视图必须是接收视图本身或接收视图的子视图。 据说这个视图被添加到一个视图中的约束被保留下来。 评估约束时使用的坐标系是保存约束的视图的坐标系。 如果我将它添加到查看A或查看B,是否有关系? join一个超级视图而不是另一个有什么意义? 有什么方便的影响? (例如,如果所有的约束都在一个地方,它更容易pipe理?)

iOS 7 UITableViewCell与AutoLayout的冲突约束

基本上,我在单独的XIB文件中创build一个空的UITableViewCell。 层次结构显示在这里: https : //www.dropbox.com/s/nba8e5t7dvti7os/hierarchy.png 我想根据内容(通过更新约束常量)在运行时改变内部视图的高度,并基于这个计算单元格/行高度。 所以,如果我有很高的内容,我的行就会扩大,如果我的内容很短,我的行就会变小。 我想为这些计算使用AutoLayout。 我有限制,坚持ContentView的顶部/底部,并希望我的内部视图的高度= 20。 几乎立即我看到一个冲突: https : //www.dropbox.com/s/b3effgdw3t2768m/conflict.png 绝对是我对AutoLayout的理解不完整。 第一个问题是:我希望我的视angular是20pt高度,而我的ContenView是完全一样的大小,这是怎么回事? 第二个问题是:我如何实现这一目标?

如何将宽度等同于NSLayoutConstraint的某些UIViews?

我如何可以钉住两个以上宽度的UIViews同样使用NSLayoutConstraints? 现在,我使用下面的代码,我不能钉住两个以上的UIViews: for (int i = 0; i < column.count; i++) { NSString *horizontalFormat = @"H:|[view1][view2(==view1)]|"; NSDictionary *views; if (i < column.count – 1) { views = @{ @"view1": column[i], @"view2": column[i + 1] }; }else{ views = @{ @"view1": column[i – 1], @"view2": column[i] }; } NSArray * horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:horizontalFormat options:NSLayoutFormatAlignAllTop | […]

使用dynamic约束来alignment文本字段

我一直在学习如何制作iOS应用程序,并且遇到了一些小问题。 我找不到一个简单的方法来alignment我的文字input。 看下面的截图,你会看到我设法alignment我的文本字段,这是我想要的。 但是,我通过更改每个标签和文本字段之间的单独Leading Space来手动完成此操作。 我的问题是,我怎样才能dynamic地alignment我的文本字段?

利用锚自动布局边距

所以,我认为以下是相同的? # This is how I usually do contentView.leftAnchor.constraint(equalTo: leftAnchor, constant: 5).isActive = true contentView.topAnchor.constraint(equalTo: topAnchor, constant: 5).isActive = true contentView.rightAnchor.constraint(equalTo: rightAnchor, constant: -5).isActive = true contentView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -5).isActive = true # This is what I tried. I expected the same result.. layoutMargins = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) contentView.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor).isActive […]

Swift – 可扩展TableViewCell中的约束问题

我正在用标签和选取器视图创build一个可展开的单元格 厦门国际银行 单元实现 class PickerViewCell: UITableViewCell { @IBOutlet weak var detailLabel: UILabel! @IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var height: NSLayoutConstraint! @IBOutlet weak var picker: UIDatePicker! var isExpanded:Bool = false { didSet { if isExpanded == false{ self.height.constant = 0.0 self.picker.hidden = true } else{ self.height.constant = 200.0 self.picker.hidden = false } } } […]

设置单元格高度给我错误

我有UITableViewCell的UIView 。 我试图用animation来改变view的高度。 这是我做的: self.myViewConstraint.constant = 100; // Coming from 0 [UIView animateWithDuration:0.3f animations:^{ [self.view layoutIfNeeded]; }]; 唯一的是,它在一个tableView 。 所以这里是我为heightForRow…做的: return self.myViewConstraint.constant == 0 ? 74 : 174; 现在我需要更新tableView ,所以我插入animateWithDuration : [self.tableView beginUpdates]; [self.tableView endUpdates]; 因为在cell内部还有其他东西,所以当cells高度animation时, constraints会变得混乱。 我怎样才能更新cells高度,而没有得到的约束搞砸了? (我希望cells高度animation。) 这是我得到的警告。 (一切工作正常,但我只是想删除警告。) 编辑我改变了一下,现在我得到这个错误: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in […]

在今日扩展中使用自动布局的dynamic高度

编辑:我的“原始”的问题已被解决,它被限制在110高度, "<NSAutoresizingMaskLayoutConstraint:0x6000000985b0 h=–& v=–& UIView:0x7fc83af0aeb0.height == 110 (active)>"之前我读了关于NCWidgetDisplayMode , .Compact和.Expanded ,这显然是在iOS 10中引入的。 有趣的事情:当他们在iOS 10中展示新function时,看起来像是有错误( https://developer.apple.com/videos/play/wwdc2016/101/?time=3221 ) 尽pipe如此,我仍然没有得到正确的高度调整。 请参阅下面的相关代码细节,并查看完整的源代码: https : //github.com/everlof/TodayExtensionSample 。 override func viewDidLoad() { super.viewDidLoad() extensionContext?.widgetLargestAvailableDisplayMode = .expanded view.backgroundColor = .red lbl.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vitae tempor nulla, in volutpat lectus. Sed quis orci sit amet […]

你真的可以将约束链接到完全不同的视图控制器吗?

想象一下,你有一个屏幕有一个视图控制器(与容器视图,或其他)。 (如果你喜欢的话,可以考虑一个iPad应用程序,它有很多大的,复杂的区域,每个区域都有自己的子容器视图,用于列表,控件等等) 即使 – 也许你有隐藏的风险投资,在屏幕上滑动,甚至可能只是在caching中,并没有呈现,或者你可能有一些“堆叠在一起”的屏幕,所以有些甚至不可见。 所以说你有一个观点v var v: UIView 在这些视图控制器中的一个中,以及视图w var w: UIView 在一个完全不同的视图控制器。 出于某种原因,您希望两个项目在屏幕上具有相同的宽度 。 事实上。 你可以NSLayoutConstraint之一? (显然你不能在故事板上,这没什么大不了的,你可以在布局的时候用代码来做)。 那可能吗? 当其中一个风险投资者消失时,会引起问题吗? (事实上​​,约束会导致一个很难的参考?) 这有什么关系?