public static CodeStringView AddCodeStringView(UIView parent)
        {
            var codeStringView = new CodeStringView();

            parent.AddSubview(codeStringView);
            return(codeStringView);
        }
        private CodeStringView ConstrainAndAddToMeta(int column, UIView parent, CodeStringView codeStringView)
        {
            AddWidthConstraint(parent, codeStringView);
            AddHeightConstraint(parent, codeStringView);
            AddBottomConstraint(parent, codeStringView, CenterCodeString, column);
            var codeStringMeta = new CodeStringMeta(codeStringView, column);

            _allCodeStrings.Add(codeStringMeta);
            return(codeStringView);
        }
        public CodeStringView AddToLeftOf(int column, CodeStringView relativeView, UIView parent)
        {
            var codeStringView    = AddCodeStringView(parent);
            var pixelsBetweenRows = GetPixelsBetweenRows();

            parent.ConstrainLayout(() =>
                                   codeStringView.Frame.Right == relativeView.Frame.Left - pixelsBetweenRows
                                   );

            return(ConstrainAndAddToMeta(column, parent, codeStringView));
        }
        private static void AddBottomConstraint(UIView parent, CodeStringView codeStringView, UIView centerCodeString, int column)
        {
            var distanceFromCenter = GetDistanceFromCenter(column);
            var bottomConstraint   = NSLayoutConstraint.Create(
                codeStringView, NSLayoutAttribute.Bottom,
                NSLayoutRelation.Equal,
                centerCodeString, NSLayoutAttribute.Bottom,
                1, -distanceFromCenter);

            parent.AddConstraint(bottomConstraint);
        }
 private void AddWidthConstraint(UIView parent, CodeStringView codeStringView)
 {
     parent.AddConstraint(NSLayoutConstraint.Create(codeStringView, NSLayoutAttribute.Width, NSLayoutRelation.Equal, 1, TextWidth * 3));
 }
 private void AddHeightConstraint(UIView parent, CodeStringView codeStringView)
 {
     parent.AddConstraint(NSLayoutConstraint.Create(codeStringView, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1, TextHeight));
 }
 public CodeStringMeta(CodeStringView codeStringView, int column)
 {
     CodeStringView = codeStringView;
     Column         = column;
 }