Questions tagged «constraints»

约束是在给定上下文中必须满足的条件。约束通常用于数据库和编程语言中,以检测错误,确保数据一致性,准确性并执行业务需求。

3
PostgreSQL中的约束名称更新
是否可以在Postgres中更改约束名称?我添加了一个PK: ALTER TABLE contractor_contractor ADD CONSTRAINT commerce_contractor_pkey PRIMARY KEY(id); 我想为其使用其他名称,以与系统的其余部分保持一致。我应该删除现有的PK约束并创建一个新的PK约束吗?还是有一种“软”的方式来管理它? 谢谢!

16
删除所有影响UIView的约束
我有一个通过多个约束放置在屏幕上的UIView。某些约束由超级视图拥有,而其他约束则由其他祖先拥有(例如,UIViewController的view属性)。 我想删除所有这些旧约束,并使用新约束将其放置在新位置。 在不为每个约束创建IBOutlet且必须记住哪个视图拥有所述约束的情况下,如何做到这一点? 详细地说,幼稚的方法是为每个约束创建一堆IBOutlet,然后涉及调用代码,例如: [viewA removeConstraint:self.myViewsLeftConstraint]; [viewB removeConstraint:self.myViewsTopConstraint]; [viewB removeConstraint:self.myViewsBottomConstraint]; [self.view removeConstraint:self.myViewsRightConstraint]; 此代码的问题在于,即使在最简单的情况下,我也需要创建2个IBOutlet。对于复杂的布局,这可以轻松达到4或8个所需的IBOutlets。此外,我需要确保在适当的视图上正在调用删除约束的调用。例如,假设myViewsLeftConstraint归拥有viewA。如果我不小心打了电话[self.view removeConstraint:self.myViewsLeftConstraint],什么也不会发生。 注意:方法constraintsAffectingLayoutForAxis看起来很有希望,但仅用于调试目的。 更新:很多我收到处理问题的答案self.constraints,self.superview.constraints或一些人的变种。这些解决方案将不起作用,因为这些方法仅返回视图所拥有的约束,而不会影响那些约束视图。 为了阐明这些解决方案的问题,请考虑以下视图层次结构: 祖父 父亲 我 儿子 女儿 哥哥 叔叔 现在想象我们创建以下约束,并将它们始终附加到最接近的共同祖先: C0:我:与儿子(我拥有)同上 C1:我:宽度= 100(属于我) C2:我:与兄弟(父亲拥有)相同的身高 C3:我:和叔叔一样(祖父拥有) C4:我:与祖父(祖父拥有)同左 C5:兄弟:与父亲相同(父亲拥有) C6:叔叔:与祖父(祖父拥有)相同 C7:儿子:和女儿(我所有)同左 现在想象我们要删除所有影响的约束Me。任何适当的解决方案都应该删除,[C0,C1,C2,C3,C4]并且别无其他。 如果我使用self.constraints(自我就是我),我将得到[C0,C1,C7],因为这些是我所拥有的唯一约束。显然,仅仅删除它是不够的,因为它丢失了[C2,C3,C4]。此外,它是C7不必要地删除。 如果我使用self.superview.constraints(自我就是我),我会得到[C2,C5],因为那是父亲的约束。显然,我们无法删除所有这些内容,因为它们C5与完全无关Me。 如果我使用grandfather.constraints,我会得到[C3,C4,C6]。同样,我们不能删除所有这些内容,因为它们C6应保持不变。 蛮力方法是循环在每个视图的祖先(包括其本身)的,并且如果看到firstItem或secondItem是视图本身; 如果是这样,请删除该约束。这将导致正确的解决方案,return [C0,C1,C2,C3,C4],并且仅是那些约束。 但是,我希望有一个比必须遍历整个祖先列表更优雅的解决方案。

8
如何在运行时更改约束优先级
我有一个具有动态高度的视图,并且我试图在运行时更改此视图高度优先级。 这是我的代码部分; if (index == 0) { surveyViewHeightConstraint.constant = 0; surveyViewHeightConstraint.priority = 1000; } else if (index == 1) { surveyViewHeightConstraint.constant = 163; surveyViewHeightConstraint.priority = 500; } 我正在通过按钮操作更改索引。运行此代码时,出现此错误: *** Assertion failure in -[NSLayoutConstraint setPriority:], /SourceCache/Foundation/Foundation-1141.1/Layout.subproj/NSLayoutConstraint.m:174 我在这里有什么错?

7
当我不知道约束名称时,如何在Oracle中删除“ not null”约束?
我有一个对字段具有NOT NULL约束的数据库,我想删除此约束。复杂的因素是,此约束具有系统定义的名称,并且该约束的名称在生产服务器,集成服务器和各种开发人员数据库之间不同。我们当前的过程是检入变更脚本,并且一个自动化的任务通过sqlplus针对目标数据库执行适当的查询,因此我希望可以直接发送到sqlplus的解决方案。 在我自己的数据库上,删除它的SQL将是: alter table MYTABLE drop constraint SYS_C0044566 查询all_constraints视图时可以看到约束: select * from all_constraints where table_name = 'MYTABLE' 但是我不确定如何使用SEARCH_CONDITION的LONG数据类型,或者即使知道了它的名称,也不确定如何最好地动态删除查找到的约束。 因此,如何创建一个更改脚本,可以根据其名称而不是其名称删除该约束? 编辑:@Allan的答案是一个很好的答案,但我担心(由于我缺乏Oracle专业知识),可能具有系统生成名称的任何约束都可能与它相关联,这并不是一种普遍的删除方法。约束而不必知道其名称。确实存在,在逻辑上删除该约束时,总会有一种避免必须知道系统命名约束名称的方法的方法吗?

7
如何在iOS中以编程方式设置纵横比约束?
我已经为视图控制器使用了自动布局。我已经在约束中设置了V和H位置,但是我想知道当按钮变为5s,6和6 Plus时如何增加按钮的大小。这是我为登录按钮添加约束的方式: NSArray *btncon_V=[NSLayoutConstraint constraintsWithVisualFormat:@"V:[btnLogin(40)]" options:0 metrics:nil views:viewsDictionary]; [btnLogin addConstraints:btncon_V]; NSArray *btncon_POS_H=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-100-[btnLogin]-100-|" options:0 metrics:nil views:viewsDictionary]; [self.view addConstraints:btncon_POS_H]; NSArray *btncon_POS_V=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-70-[Title]-130-[lblFirst]-0-[lblSecond]-20-[textusername]-10-[txtpassword]-10-[btnLogin]" options:0 metrics:nil views:viewsDictionary]; [self.view addConstraints:btncon_POS_V]; 但是我的问题是,尽管它可以控制左右间隙,但由于高度是固定的,因此在iPhone 6和6 Plus中变得越来越张紧。如何根据屏幕尺寸增加尺寸?我认为这可能是纵横比,但是如何在代码中设置纵横比约束?

2
PostgreSQL:默认约束名称
在PostgreSQL中创建表时,如果未提供,则将分配默认约束名称: CREATE TABLE example ( a integer, b integer, UNIQUE (a, b) ); 但是使用ALTER TABLE添加约束似乎必须使用名称: ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b); 这导致了我从事的项目的命名不一致,并提示了以下问题: 有没有一种简单的方法可以将约束添加到现有表中,该约束的名称是在表创建过程中添加时将收到的名称? 如果不是,是否应完全避免使用默认名称以防止不一致?

6
以编程方式创建布局约束
我知道很多人已经问过很多问题,但是即使有了答案,我也无法解决。 当我处理情节提要上的约束时,这很容易,但是在代码中我很难过。例如,我尝试让视图停留在右侧,并根据屏幕方向显示屏幕高度。这是我的代码: 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)]]; 它不满足某些约束。我看不出有什么问题。另外,为什么我不能使用像这样的属性self.myView而不是像这样的局部变量myView?


8
C#泛型不允许委托类型约束
是否可以在C#中定义一个类,使得 class GenericCollection<T> : SomeBaseCollection<T> where T : Delegate 我一生无法在.NET 3.5中完成昨晚的工作。我尝试使用 delegate, Delegate, Action<T> and Func<T, T> 在我看来,这在某种程度上应该是允许的。我正在尝试实现自己的EventQueue。 我最终做了这个[原始近似值介意你]。 internal delegate void DWork(); class EventQueue { private Queue<DWork> eventq; } 但是后来我失去了为不同类型的函数重用相同定义的能力。 有什么想法吗?

4
UIScrollView不使用自动布局约束
我后面有一个滚动视图和一个图像视图,并用笔尖填充它。我正在使用自动版式。在这两个视图中,我都有一个底部空间可以进行超级视图和顶部空间来进行超级视图。图像视图确实可以实现我想要的功能。对于iPhone 5,这是我想要的地方。对于其他iPhone,它位于屏幕底部上方,因此可以正确调整大小。滚动视图在iphone 5上看起来正确,但在其他手机上并没有调整大小,因此它向下滚动到应用程序视图下方。我在日志中收到以下消息: 2012-11-21 10:42:38.576 LCHApp[12604:907] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the …


9
模板约束C ++
在C#中,我们可以定义一个通用类型,该通用类型对可用作通用参数的类型施加了约束。以下示例说明了通用约束的用法: interface IFoo { } class Foo<T> where T : IFoo { } class Bar : IFoo { } class Simpson { } class Program { static void Main(string[] args) { Foo<Bar> a = new Foo<Bar>(); Foo<Simpson> b = new Foo<Simpson>(); // error CS0309 } } 有没有一种方法可以对C ++中的模板参数施加约束。 C ++ …



8
自动布局(约束)在父视图中居中2个并排视图
我试图弄清楚如何使用自动布局(iOS6)和约束来做到这一点。 基本上,我的大视野在底部分为两个部分。在这些部分(当前为子视图)中,我具有图像视图和标签。我想用可变长的文本在两边居中。 我的头主要围绕自动布局,但是我不确定最好的方法。我倾向于认为在IB中是不可能的,但是在代码中。 继续尝试解决这个问题,但与此同时,这是我要创建的示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.