//I have 3 containers in the screen. Top/ middle / bottom (i've added just middle's codes here)
- (void)initLayoutConstrains
{
[self initMiddleLayoutContainerConstraint];
NSMutableArray *constraints = [[NSMutableArray alloc] init];
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_topContainerBar, _bottomContainerBar, _middleContainerBar);
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>=20)-[_middleContainerBar(==200)]-(>=20)-|"
options: NSLayoutFormatAlignAllCenterX | NSLayoutFormatAlignAllCenterY
metrics:nil
views:viewsDictionary]];
Edit: i have not much time but here is a temporary solution i came up with:
CGFloat testViewHeight = 200;
NSDictionary *metrics = @{ @"testViewY": @(self.view.frame.size.height / 2 - testViewHeight / 2), @"testViewHeight":@(testViewHeight)};
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-testViewY-[testView(==testViewHeight)]"
options: kNilOptions
metrics:metrics
views:viewsDictionary]];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[testView]|" options:kNilOptions metrics:nil views:viewsDictionary]];