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