我以編程方式構建視圖並使用自動佈局,根本沒有接口構建器。在自定義的ScrollView控制器中,我添加了一個UILabel和一個UIButton作爲子視圖。我想將標籤對齊屏幕左側和屏幕右側的按鈕。出於某種原因,我的按鈕只與我的滾動視圖的左側對齊。我已經削減了我的代碼,以便它只有這兩個標籤,我不明白爲什麼它不會對齊到正確的位置。自動佈局iOS 7 - 無法將子視圖的右側對齊到UIScrollView的右側
HWScrollViewController.m(我如何初始化主滾動視圖)
- (void)loadView
{
self.scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.scrollView.delegate = self;
self.view = self.scrollView;
}
HWListingDetailViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *priceLabel = [[UILabel alloc] init];
UIButton *favouriteButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
[priceLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
[favouriteButton setTranslatesAutoresizingMaskIntoConstraints:NO];
[priceLabel setText:@"$125.00"];
[favouriteButton setTitle:@"Add to Favourites" forState:UIControlStateNormal];
[self.view addSubview:priceLabel];
[self.view addSubview:favouriteButton];
[self.view addConstraints:@[
[NSLayoutConstraint constraintWithItem:priceLabel
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterY
multiplier:1
constant:0],
[NSLayoutConstraint constraintWithItem:priceLabel
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:5],
[NSLayoutConstraint constraintWithItem:favouriteButton
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterY
multiplier:1
constant:0],
[NSLayoutConstraint constraintWithItem:favouriteButton
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:5],
}
正如你所看到的,綠色價格標籤正確對齊,但紅色按鈕遠離屏幕的左側。 (我給它5個像素的偏移量以顯示它的位置。)那麼,爲什麼scrollview的右側實際上是左側?我該如何正確對齊屏幕右側?我哪裏做錯了?這真讓我抓狂!
感謝您的幫助!
最後的版面圖: 我希望的最終佈局是這樣的:
,我希望它看起來就像這樣旋轉爲橫向:
我同意純自動佈局方法是我正在尋找的,在屏幕上會有大量的動態內容,但是它只會在垂直方向上呈動態。除了屏幕寬度之外,我沒有任何設置水平約束的東西。我將編輯我的問題以添加最終佈局圖像。 – Wernzy