2016-07-31 109 views
0

我是IOS開發新手,所以當我動態更改UITextFeild的寬度時,我希望下面的按鈕向上移動。 我嘗試使用約束,但它似乎沒有動態變化。動態更改位置

(IBAction)selectStatus:(id)sender { 
    CGRect frameRect = _textViewDevices.frame; 
    frameRect.size.height = 10; 
    self.textViewDevices.frame = frameRect; 

如何實現這一目標的好例子?

我想實現類似於android中的相對定位。

current box before any action on action the box size change

+1

請分享一些圖像它應該是什麼,而不是 – ddb

+0

您是否在使用自動佈局? –

+0

@ViktorSimkóyes –

回答

0

編程,當第一場紫羅蘭變化的高度,使所有的以下意見留在它旁邊,你應該正確地更新frame.origin.y

因此,舉例來說,狀態標籤應該重新定義這樣

CGRect frame = statusLabel.frame; 
frame.origin.y = firstField.origin.y + firstField.size.height + 5; 
statusLabel.frame = frame; 

與同爲以下所有的意見(我假設5個像素的視圖之間的空間)

2

嘗試調用layoutIfNeeded修改後:

- (IBAction)selectStatus:(id)sender { 
    CGRect frameRect = _textViewDevices.frame; 
    frameRect.size.height = 10; 
    self.textViewDevices.frame = frameRect; 
    [self.view layoutIfNeeded]; 
} 

如果您對文本視圖的高度限制,嘗試設置其持續不斷的,而不是設置框架的高度:

- (IBAction)selectStatus:(id)sender { 
    self.textViewHeightConstraint.constant = 10; 
    [self.view layoutIfNeeded]; 
}