我想以編程方式移動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