Цель C: Центр с NSLayoutConstraint - PullRequest
0 голосов
/ 23 мая 2018

NSArray *imageViewHorConst2 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[_startbutton(50)]-30-[_resetbutton(50)]" options:0 metrics:nil views:viewsDictionary2];}

Я пытаюсь разделить эти две кнопки (кнопка запуска, кнопка сброса) на некоторое значение и отцентрировать.Я не уверен, как это сделать в цели C

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вы можете легко сделать это с помощью UIStackView

self.view.backgroundColor = [UIColor redColor];
UIStackView*st = [UIStackView new];
st.distribution = UIStackViewDistributionFillEqually;
st.axis = UILayoutConstraintAxisHorizontal;
st.spacing = 40;

UIButton*b1 = [UIButton buttonWithType:UIButtonTypeSystem];
UIButton*b2 = [UIButton buttonWithType:UIButtonTypeSystem];
[b1 setTitle:@"ClickB1" forState:UIControlStateNormal];
[b2 setTitle:@"ClickB2" forState:UIControlStateNormal];

st.translatesAutoresizingMaskIntoConstraints = NO;
b1.translatesAutoresizingMaskIntoConstraints = NO;
b2.translatesAutoresizingMaskIntoConstraints = NO;

[st addArrangedSubview:b1];
[st addArrangedSubview:b2];
[self.view addSubview:st];

[[st.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor] setActive:YES];
[[st.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor] setActive:YES];
0 голосов
/ 23 мая 2018

Вот фрагмент кода для добавления двух кнопок в центре экрана, разделенных 30 пикселями:

UIButton *button1 = [[UIButton alloc] init];
button1.translatesAutoresizingMaskIntoConstraints = FALSE;
[button1 setTitle:@"Button 1" forState:UIControlStateNormal];
button1.backgroundColor = [UIColor blueColor];

UIButton *button2 = [[UIButton alloc] init];
button2.translatesAutoresizingMaskIntoConstraints = FALSE;
[button2 setTitle:@"Button 2" forState:UIControlStateNormal];
button2.backgroundColor = [UIColor brownColor];

// Add a container view to hold two buttons
UIView *containerView = [[UIView alloc] init];
containerView.translatesAutoresizingMaskIntoConstraints = FALSE;

[containerView addSubview:button1];
[containerView addSubview:button2];
// vertical constraints
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button1]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button1)]];
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button2]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button2)]];
// horizontal constraints
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[button1]-(30)-[button2]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button1, button2)]];

// Add the container view with centerx and centery constraints to
// keep the buttons in the center
[self.view addSubview:containerView];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containerView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containerView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]];

Снимок экрана: screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...