У меня есть следующий код:Почему, когда я сделал свое ограничение относительно нижней части супервизора, он работал с вершины супервизора? И теперь это правильно?
self.noArticlesView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.frame.size.height)];
UIImage *backgroundPattern = [UIImage imageNamed:@"no-articles-background.png"];
self.noArticlesView.backgroundColor = [UIColor colorWithPatternImage:backgroundPattern];
[self.view addSubview:self.noArticlesView];
UIImage *noArticlesImage = [UIImage imageNamed:@"no-articles-icon.png"];
UIImageView *noArticlesImageView = [[UIImageView alloc] initWithImage:noArticlesImage];
noArticlesImageView.translatesAutoresizingMaskIntoConstraints = NO;
[self.noArticlesView addSubview:noArticlesImageView];
NSLayoutConstraint *horizontalCenterConstraint = [NSLayoutConstraint constraintWithItem:noArticlesImageView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.noArticlesView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0];
[self.noArticlesView addConstraint:horizontalCenterConstraint];
NSLayoutConstraint *verticalPlacementConstrant = [NSLayoutConstraint constraintWithItem:noArticlesImageView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.noArticlesView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-230.0];
[self.noArticlesView addConstraint:verticalPlacementConstrant];
В принципе, я добавляю вид (так называемый noArticlesView
) на вершине зрения контроллера представления, и это представление отображает сообщение о том, что нет контента в настоящее время добавил (в случай, которого нет, конечно).
Для этого я добавляю изображение в качестве подсмотра в качестве индикатора этого.
Но когда я изменяю выше ограничение на изображение, чтобы иметь свойство toItem:self.view
и добавить его в self.view
вместо self.noArticlesView
он толкает его с верхней точки зрения, а не в нижней части (т.е. 200, как константа будет толкать его 200px от верхней).
Я получил его разобрали, установив ограничение на изображении по сравнению с noArticlesView
вместо self.view
, но я до сих пор интересно, за поведение (я все еще учусь Auto Layout и хочу, чтобы получить представление о нем).
Кроме того, что я сейчас делаю правильно? Если я хочу, чтобы он был расположен на 230 пикселей ниже, задает константу -230 пути? Устанавливает константы как отрицательную плохую форму или что-то еще?
Не удалось запросить лучший ответ. 230 действительно просто волшебное число, но я буду помнить об этом, спасибо. :) –