我一直在尋找解決這個奇怪的自動佈局問題。我試圖建立一個5頁的分頁UIScrollView。每個頁面都有自己的container
,這是一個通用的UIView。我目前的設置是這樣的:Autolayout沒有UIScrollView
UIView *container = [[UIView alloc] init];
container.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *width =[NSLayoutConstraint
constraintWithItem:container
attribute:NSLayoutAttributeWidth
relatedBy:0
toItem:self.headlineView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0];
NSLayoutConstraint *height =[NSLayoutConstraint
constraintWithItem:container
attribute:NSLayoutAttributeHeight
relatedBy:0
toItem:self.headlineView
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:0];
NSLayoutConstraint *top = [NSLayoutConstraint
constraintWithItem:container
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.headlineView
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0.f];
NSLayoutConstraint *left = [NSLayoutConstraint
constraintWithItem:container
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.headlineView
attribute:NSLayoutAttributeLeft
multiplier:index
constant:self.headlineView.frame.size.width];
[self.headlineView addSubview:container];
[self.headlineView addConstraints:@[width, height, top, left]];
語境:這就是所謂的內for循環執行5次,變量index
增量,其中每個時間。這是正常工作。
基於最後一個約束,我認爲這會產生所需的效果。乘數每次(0-4)都會將左邊緣移動一個單位的滾動視圖的框架。
實際結果很奇怪。所有5個視圖都位於滾動視圖的第二頁上,彼此重疊。
乘法器和常量參數是否像我認爲的那樣不被使用?我在這裏搞什麼?
該框架不是0.它已經設置了寬度和高度成員。在約束之前調用這兩個方法什麼也不做。 – erdekhayser 2014-10-07 00:48:41
布拉特!回到繪圖板 – brandonscript 2014-10-07 00:49:38
這個問題似乎是''左''約束沒有做我認爲會。其他限制正常工作,但最後一個似乎是問題。 – erdekhayser 2014-10-07 01:06:56