我想以编程方式移动self.view的y位置(顶部约束)。但我没能发现我可以改变运行时间如何在自动布局中更改self.view约束?
self.view.frame = CGRectMake(0, -59, self.view.frame,size.width, self.view.frame,size.height);
像这样的事情,但有约束的任何约束?
我想以编程方式移动self.view的y位置(顶部约束)。但我没能发现我可以改变运行时间如何在自动布局中更改self.view约束?
self.view.frame = CGRectMake(0, -59, self.view.frame,size.width, self.view.frame,size.height);
像这样的事情,但有约束的任何约束?
取一个新的UIView
并在新的UIView中添加你的textfield
。在主视图中添加新的UIView
(self.view
)。为新的UIView
添加Constraint
。
现在你可以改变新UIView
constraint
编程,
IBOutlet NSLayoutConstraint * topConstraint;
或
NSArray * arrConstarint=self.view.constraints;
for (NSLayoutConstraint * constraint in arrConstarint)
{
if (constraint.firstAttribute==NSLayoutAttributeTop) {
// if problem then add constraint.firstItem or constraint.secondAttribute etc
constraint.constant=-59;
}
}
你不应该移动视图控制器的视图。设置视图的框架是超视图的责任。对于视图控制器来说,这意味着定位self.view
是周围视图控制器的责任(例如UINavigationController
)。
而是在尝试移动内容以便键盘不隐藏任何内容时,应该将视图中的内容移动到正确的位置。但是,请记住,从iOS8和自定义键盘开始,键盘几乎可以有任何高度,因此您无法保证所有子视图都可以在屏幕上看到。大多数情况下 - 可能会有例外情况 - 在UIScrollView
内移动文本字段并更改滚动视图的contentOffset
以便当前第一响应者(当前正在编辑的文本字段)可见时更好。
你去哪里卡住了,说实话?你是否试图改变你的约束“常量”值?我在这里没有看到任何尝试...... – holex 2014-12-09 12:54:53
我在中心有2个文本框。所以我想在键盘升起时向上移动。所以我想移动self.view了。改变约束我需要顶部约束对象,但我怎么能找到self.view约束 – 2014-12-09 13:00:49