2014-04-14 106 views
0

我有圓視圖一個上海華和含有3個標籤用作子視圖和居中於上海華作爲圖像看到 與enter image description hereiOS的約束不更新預期

我已經加入約束到3個標籤一個holderview尊重holderview,也增加了限制holderview相對於超級視圖

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(titleLabel); 
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[titleLabel]-|" 
             options:0 
             metrics:nil 
              views:viewsDictionary]; 

[holderView addConstraints:constraints]; 


viewsDictionary = NSDictionaryOfVariableBindings(setLabel); 
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[setLabel]-|" 
             options: 0 
             metrics:nil 
              views:viewsDictionary]; 

[holderView addConstraints:constraints]; 


viewsDictionary = NSDictionaryOfVariableBindings(repLabel); 
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[repLabel]-|" 
             options:0 
             metrics:nil 
              views:viewsDictionary]; 

[holderView addConstraints:constraints]; 

viewsDictionary = NSDictionaryOfVariableBindings(titleLabel, setLabel, repLabel); 
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[titleLabel]-0-[setLabel]-0-[repLabel]-|" 
             options:0 
             metrics:nil 
              views:viewsDictionary]; 

[holderView addConstraints:constraints]; 


NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_labelView); 
    NSArray *constraints =[NSLayoutConstraint constraintsWithVisualFormat:@"|-[_labelView]-|" 
                    options:0 
                    metrics:nil 
                    views:viewsDictionary]; 
    [self addConstraints:constraints]; 

有一個應用程序中的圓圈縮小功能。我希望holderview和它的subivews動態縮小。添加約束條件適用於holderview,但子視圖不對齊。

enter image description here enter image description here

要縮小我更新holderview作爲上海華幀變化的幀的大小。

任何人都可以指出錯誤,並指導我妥善解決?

+1

你應該顯示如何處理收縮的代碼。如果你實際上修改了持有者視圖的框架,那就錯了 - 你應該在約束條件下這樣做。你在超視圖和持有者視圖之間有什麼限制? – rdelmar

+0

其實你是對的,我正在更新持有人視圖的框架也。但是限制應該照顧它。它現在按預期工作。謝謝 – Tarang

回答

1

使用自動佈局和更改框架屬性會弄亂東西。

創建oultest到要更改或動畫

__weak IBOutlet UIView *settingsView; 
__weak IBOutlet NSLayoutConstraint *settingsBottomConstraint; 
__weak IBOutlet NSLayoutConstraint *settingsViewHeightConstraint; 

更新約束的約束(決不幀!)

settingsBottomConstraint.constant = - settingsViewHeightConstraint.constant; 
[settingsView setNeedsUpdateConstraints]; 
[settingsView layoutIfNeeded]; 
isSettingsHidden = YES; 

最近我曾與與自動佈局和視圖動畫工作你可以在這裏找到你的答案 Auto Layout constraint change does not animate