Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组件添加到Interface Builder中的视图时有效,但在代码中无效_C#_Ios_Xamarin.ios_Xamarin - Fatal编程技术网

C# 组件添加到Interface Builder中的视图时有效,但在代码中无效

C# 组件添加到Interface Builder中的视图时有效,但在代码中无效,c#,ios,xamarin.ios,xamarin,C#,Ios,Xamarin.ios,Xamarin,我一直在搞米格尔的港口 我可以启动一个新的单页项目,将MaterialButton添加到视图中,将其类更改为MaterialButton,然后运行,按钮的功能应该如何与材质动画配合使用 如果我启动一个空项目并在代码中添加MaterialButton,它就不会动画。点击按钮会触发触控,但在尝试调试时不会触发触控。在第一个示例中,触发了BegingKing 此外,如果我在代码中添加MaterialTextEdit,它可以正常工作。我不知道通过Interface Builder添加时会有什么不同,这会

我一直在搞米格尔的港口

我可以启动一个新的单页项目,将MaterialButton添加到视图中,将其类更改为MaterialButton,然后运行,按钮的功能应该如何与材质动画配合使用

如果我启动一个空项目并在代码中添加MaterialButton,它就不会动画。点击按钮会触发触控,但在尝试调试时不会触发触控。在第一个示例中,触发了BegingKing

此外,如果我在代码中添加MaterialTextEdit,它可以正常工作。我不知道通过Interface Builder添加时会有什么不同,这会导致控件现在在代码中添加时工作

public override void ViewDidLoad()
{
    base.ViewDidLoad();

    NavigationController.NavigationBarHidden = true;

    View.BackgroundColor = UIColor.Gray;

    float h = 31.0f;
    var w = View.Bounds.Width;

    //This works
    usernameField = new MaterialSharp.MaterialTextField(new CoreGraphics.CGRect(10, 32, w - 20, h))
    {
        Placeholder = "Enter your username",
        BorderStyle = UITextBorderStyle.RoundedRect,
    };

    View.AddSubview(usernameField);

    //Seems to mostly work, except for animations
    var bounds = new CGRect (10, 100, w-20, h);
    MaterialButton loginButton = new MaterialButton (bounds);
    loginButton.SetTitle ("Button", UIControlState.Normal);
    loginButton.BackgroundColor = UIColor.Blue;
    loginButton.TouchUpInside += (object sender, EventArgs e) => { }; //This works
    View.AddSubview (loginButton);
}
这是GitHub上的一个bug

public MaterialButton (CGRect frame) : base (UIButtonType.Custom)
        {
            Frame = frame;
            SetupLayer ();
        }


我不知道这是否会有什么不同,但你不应该将translatesAutoResizengMaskinToConstraints设置为false,除非你要为按钮添加约束,而不是设置它的框架。哎呀,我在做示例之前就这样做了。更新:不是这样,你应该回答你自己的问题。我将回答这个问题,但我想确保这个修复程序实际上就是修复程序,因为它不再指定自定义按钮类型。在此之前,其他人可能会正确回答。公共关系中也提到了这一点。我经常更新我的问题和答案,并看到其他人也这样做。我在更新中注意到,更改可能不正确。但否决票将被否决。
public MaterialButton (CGRect frame) : base (frame)
        {
            Frame = frame;
            SetupLayer ();
        }