我有一个带有选项卡栏的项目,每个选项卡都有一个自定义导航栏。每个导航栏UIView都在Storyboard中设置了高度约束常量。我想将这个NSLayoutConstraint子类化(用于Nav高度),以便它改变iPhoneX的高度。iPhoneX上的导航栏需要更高,因为我没有使用“outof盒子”对象,我的约束需要手动设置。本质上,我想在子类中做类似下面的事情,这样我就不必重复一堆代码和做不必要的导出:overridefuncviewWillLayoutSubviews(){navBarHeightConstraint.constant=navBarHeightConstraintCo
我对单元格使用自动高度。每次我想用新数据(这里是模型变量)更新我的单元格时,我更新了我的自动布局约束,但我得到了一个错误。这里只是为了说明问题,我什至没有更改约束。我只是要求重新计算布局。在单元格的第一个初始化:没有警告,没问题。错误:代码:tableView.rowHeight=UITableViewAutomaticDimensionoverridefunctableView(_tableView:UITableView,estimatedHeightForRowAtindexPath:IndexPath)->CGFloat{return500}classTestTableView
我已经使用代码以编程方式实现了AutoLayout:-(void)addConstraintWithListNavigationViewController:(UIView*)listViewNavigationy:(CGFloat)yheight:(CGFloat)height{//WIDTH_ListTableView=0.4//setx=0;NSLayoutConstraint*constraintToAnimate1=[NSLayoutConstraintconstraintWithItem:listViewNavigationattribute:NSLayoutAttribu
我的应用程序中有一个IBOutletNSLayoutConstraint。很简单:@property(nonatomic,weak)IBOutletNSLayoutConstraint*leftConstraint;在某些时候我想停用这个约束:self.leftConstraint.active=NO;它发生在从cellForRowAtIndexPath:调用的方法中。约束在上面一行之后变为nil。但是,如果我将此属性声明为strong那么没关系,它不会变为nil。谁能解释为什么会这样? 最佳答案 当您的socket弱时,唯一的强引
我想在cellForRowAtIndexPath中添加一些View到我的单元格内容View并为它们添加约束,但没有任何效果。我有这样的东西:NSLayoutConstraint*constraint=[NSLayoutConstraintconstraintWithItem:imageViewattribute:NSLayoutAttributeLeftrelatedBy:NSLayoutRelationEqualtoItem:cell.contentViewattribute:NSLayoutAttributeLeftmultiplier:1.0fconstant:10.0f];[c
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:presentViewController:crashoniOS6(AutoLayout)在我的应用程序中单击按钮时出现此错误:2012-06-2821:43:36.860AppName[2403:707]***Terminatingappduetouncaughtexception'NSInvalidUnarchiveOperationException',reason:'CouldnotinstantiateclassnamedNSLayoutConstraint'***Firstthrowcallsta
我有一个在iOS8下运行的UITableView,我在Storyboard中使用来自约束的自动单元格高度。我的一个单元格包含一个UITextView,我需要它根据用户输入收缩和扩展-点击以收缩/扩展文本。我通过向TextView添加运行时约束并更改约束上的常量以响应用户事件来执行此操作:-(void)collapse:(BOOL)collapse;{_collapsed=collapse;if(collapse)[_collapsedtextHeightConstraintsetConstant:kCollapsedHeight];//70.0else[_collapsedtextHe
在我的应用程序中,我经常使用约束,在大多数情况下还使用动画。在某些情况下,我需要删除约束并添加新约束。因为我也需要支持iOS7,所以我无法使用active属性,否则这将是我的解决方案。移除约束的方法是在UIView上使用removeConstraint方法。是否可以创建类似的方法constraint.remove()所以您不必知道哪个View负责约束? 最佳答案 我所做的是创建我希望能够添加/删除的约束数组,并简单地使用以下内容:@propertyNSMutableArray*newConstraints;填写newConstrai
我想设置一个约束,以编程方式为UIButton提供固定(恒定)宽度。我知道我可以使用constraintsWithVisualFormat来做到这一点,但我一直在使用constraintWithItem来处理代码中的所有约束。为了好奇/一致性,我想知道是否有任何方法可以使用constraintWithItem来做到这一点。 最佳答案 找到我的解决方案。只需将另一个对象设置为nil,将另一个属性设置为NSLayoutAttributeNotAnAttribute(这是我没有想到的)并使用固定宽度的常量参数:[selfaddConstr
我在一个superview中创建了两个view,然后在view之间添加了约束:_indicatorConstrainWidth=[NSLayoutConstraintconstraintWithItem:self.view1attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:self.view2attribute:NSLayoutAttributeWidthmultiplier:1.0fconstant:0.0f];[_indicatorConstrainWidthsetPriority:UILay