private void SetupConstraints() { ContentView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints(); // Backpanel bottom constraint for usage in detailsview _backPanelBottomConstraint = _backPanel.AtBottomOf(ContentView, 0).WithIdentifier("BackPanelBottomToView").ToLayoutConstraints().First(); // Main image constraints _mainImageHeightConstraint = _mainImage.Height().EqualTo(0).WithIdentifier("MainImageHeightConstraint").ToLayoutConstraints().First(); _mainImageBottomSpacingConstraint = _mainImage.Above(_leftSubImage, 3).WithIdentifier("MainImageAboveLeftSub").ToLayoutConstraints().First(); // Sub image constraints _subImageSpacingConstraint = _leftSubImage.Above(_ruler, 8).WithIdentifier("LeftSubImageAboveRuler").ToLayoutConstraints().First(); _subImageHeightConstraint = _leftSubImage.Height().EqualTo(50).WithIdentifier("LeftSubHeight").ToLayoutConstraints().First(); ContentView.AddConstraint(_backPanelBottomConstraint); ContentView.AddConstraint(_mainImageHeightConstraint); ContentView.AddConstraint(_mainImageBottomSpacingConstraint); ContentView.AddConstraint(_subImageSpacingConstraint); ContentView.AddConstraint(_subImageHeightConstraint); ContentView.AddConstraints( // TOP _backPanel.AtTopOf(ContentView, 5).WithIdentifier("BackPanelAtTopContentView"), _backPanel.AtRightOf(ContentView, 0).WithIdentifier("BackPanelAtRightOfContentView"), _backPanel.AtLeftOf(ContentView, 0).WithIdentifier("BackPanelAtLeftOfContentView"), _topBorder.AtTopOf(_backPanel).WithIdentifier("TopBorderAtTopOfBackpanel"), _topBorder.AtLeftOf(_backPanel).WithIdentifier("TopBorderAtLeftOfBackpanel"), _topBorder.AtRightOf(_backPanel).WithIdentifier("TopBorderAtRightOfBackpanel"), _topBorder.Height().EqualTo(1).WithIdentifier("TopBorderHeightEqualTo1"), _avatarImageView.Below(_topBorder, 14).WithIdentifier("AvatarImageBelowTopBorder"), _avatarImageView.AtLeftOf(_backPanel, 14).WithIdentifier("AvatarImageAtLeftOfBackPanel"), _avatarImageView.Height().EqualTo(45).WithIdentifier("AvatarImageHeightEquealTo"), _avatarImageView.Width().EqualTo(45).WithIdentifier("AvatarImageWidthEqualTo"), _displayName.Bottom().EqualTo().CenterYOf(_avatarImageView).Minus(1.5f).WithIdentifier("DisplayNameBottomEqualtoCenterYOfAvatarImage"), _displayName.ToRightOf(_avatarImageView, 10).WithIdentifier("DisplayNameToRightOfAvatarImage"), _displayName.ToLeftOf(_contextButton, 13), _timeAgo.Below(_displayName, 3).WithIdentifier("TimeAgoBelowDisplayName"), _timeAgo.WithSameLeft(_displayName).WithIdentifier("TimeAgoWithSameLeftDisplayName"), _timeAgo.WithSameRight(_displayName).WithIdentifier("TimeAgoWithSameRightDisplayName"), _postText.Below(_avatarImageView, 8).WithIdentifier("PostTextBelowAvatarImage"), _postText.AtLeftOf(_backPanel, 11).WithIdentifier("PostTextAtLeftOfBackPanel"), _postText.AtRightOf(_backPanel, 14).WithIdentifier("PostTextAtRightOfBackPanel"), _contextButton.AtRightOf(_backPanel, 10), _contextButton.AtTopOf(_backPanel, 5), _contextButton.Width().EqualTo(30), _contextButton.Height().EqualTo(30), // CONTENT _mainImage.AtLeftOf(_backPanel).WithIdentifier("MainImageAtLeftOfBackPanel"), _mainImage.AtRightOf(_backPanel).WithIdentifier("MainImageAtRightOfBackPanel"), // INFORMATION _dateBackPanel.AtTopOf(_mainImage, 20).WithIdentifier("DateBackPanelAtTopOfContentView"), _dateBackPanel.AtRightOf(_mainImage, 20).WithIdentifier("DateBackPanelAtRightOfContentView"), _dateBackPanel.Width().EqualTo(90).WithIdentifier("DateBackPanelWidth"), _dateBackPanel.Height().EqualTo(25).WithIdentifier("DateBackPanelHeight"), _date.WithSameCenterY(_dateBackPanel).WithIdentifier("DateAtRightOfContentView"), _date.WithSameCenterX(_dateBackPanel).WithIdentifier("DateAtBottomOfContentView"), _infoContainerPlaceholder.AtTopOf(_mainImage), _infoContainerPlaceholder.AtLeftOf(_mainImage), _infoContainerPlaceholder.AtRightOf(_mainImage), _infoContainerPlaceholder.AtBottomOf(_mainImage), _infoContainer.AtLeftOf(_infoContainerPlaceholder).WithIdentifier("InfoContainerAtLeftOfBackground"), _infoContainer.AtRightOf(_infoContainerPlaceholder).WithIdentifier("InforContainerAtRightOfBackground"), _infoContainer.WithSameCenterY(_infoContainerPlaceholder), _title.AtLeftOf(_infoContainer, 20).WithIdentifier("NameAtLeftOfBackgorund"), _title.AtRightOf(_infoContainer, 20).WithIdentifier("NameAtRightBackground"), _title.AtTopOf(_infoContainer, 4), _time.Below(_title, 5).WithIdentifier("TimeAboveLocation"), _time.AtLeftOf(_infoContainer, 20).WithIdentifier("TimeAtLeftOfBackground"), _time.AtRightOf(_infoContainer, 20).WithIdentifier("TimeAtRightOfBackground"), _location.Below(_time, 3), _location.AtBottomOf(_infoContainer), _location.AtLeftOf(_infoContainer, 20), _location.AtRightOf(_infoContainer, 20), // --------------------------------------------- _leftSubImage.AtLeftOf(_backPanel).WithIdentifier("LeftSubImageAtLeftOfBackPanel"), _rightSubImage.WithSameTop(_leftSubImage).WithIdentifier("RightSubImageWithSameTopLeftSub"), _rightSubImage.WithSameWidth(_leftSubImage).WithIdentifier("RightSubImageWithSameWidthLeftSub"), _rightSubImage.AtRightOf(_backPanel).WithIdentifier("RightSubImageAtRightOfBackPanel"), _rightSubImage.ToRightOf(_leftSubImage, 3).WithIdentifier("RightSubImageToRightOfLeftSub"), _rightSubImage.WithSameHeight(_leftSubImage).WithIdentifier("RightSubImageWithSameHeightLeftSub"), // BOTTOM _ruler.Above(_commentButton).WithIdentifier("RulerBelowContentContainer"), _ruler.Height().EqualTo(1).WithIdentifier("RulerHeightEqualTo1"), _ruler.WithSameLeft(_avatarImageView).WithIdentifier("RulerWithSameLeftAvatarImage"), _ruler.WithSameRight(_displayName).WithIdentifier("RulerWithSameRightDisplayName"), _commentButton.Above(_bottomBorder).WithIdentifier("CommentButtonBelowRuler"), _commentButton.WithSameLeft(_avatarImageView).WithIdentifier("CommentWithSameLeftAvatarImage"), _commentButton.Height().EqualTo(50).WithIdentifier("CommentButtonHeightEqualTo"), _likeButton.WithSameCenterY(_commentButton).WithIdentifier("LikeButtonWithSameCenterYCommentButton"), _likeButton.ToRightOf(_commentButton, 15).WithIdentifier("LikeButtonToRightOfCommentButton"), _likeButton.WithSameHeight(_commentButton).WithIdentifier("LikeButtonWithSameHeightCommentButton"), _bottomBorder.AtBottomOf(_backPanel).WithIdentifier("BottomBorderAtBottomOfBackPanel"), _bottomBorder.AtLeftOf(_backPanel).WithIdentifier("BottomBorderAtLeftOfBackPanel"), _bottomBorder.AtRightOf(_backPanel).WithIdentifier("BottomBorderAtRightOfBackPanel"), _bottomBorder.Height().EqualTo(1).WithIdentifier("BottomBorderHeightEqualTo1") ); }