首页 > 解决方案 > Xamarin 和 ios 锚约束不起作用

问题描述

如果我将此代码添加到基本启动项目的 ViewDidLoad 中,则看不到红色视图...我认为它应该显示在窗口的顶部中心...我做错了什么?

        var redview = new UIView(new CGRect(0, 0, 100, 200));
        redview.BackgroundColor = UIColor.Red;
        redview.TranslatesAutoresizingMaskIntoConstraints = false;
        View.AddSubview(redview);

        redview.TopAnchor.ConstraintEqualTo(this.View.TopAnchor).Active = true;
        redview.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;

标签: c#xamarinuiviewconstraintsvisual-studio-mac

解决方案


因为你设置了redView.which 的框架,会和 .which 冲突Constraint。参考以下代码

var redview = new UIView();
redview.BackgroundColor = UIColor.Red;
redview.TranslatesAutoresizingMaskIntoConstraints = false;
View.AddSubview(redview);

redview.TopAnchor.ConstraintEqualTo(this.View.TopAnchor).Active = true;
redview.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;
redview.WidthAnchor.ConstraintEqualTo(100).Active=true;
redview.HeightAnchor.ConstraintEqualTo(200).Active = true; 

推荐阅读