【发布时间】:2015-11-24 11:53:20
【问题描述】:
我正在 Xamarin 表单中创建一个需要渐变按钮背景的 iPhone 应用程序。我试过CAGradientLayer。但是,它不适用于按钮。
谁能帮我解决这个问题? 这是我的按钮渲染器:
protected override void OnElementChanged (ElementChangedEventArgs<Button> e)
{
base.OnElementChanged (e);
if(e.OldElement == null)
{
btn = (UIButton) Control;
btn.Frame = new RectangleF (0, 0, (float)this.Element.WidthRequest, (float)this.Element.HeightRequest);
CAGradientLayer btnGradient = new CAGradientLayer ();
btnGradient.Frame = btn.Bounds;
btnGradient.Colors = new CGColor[]{ Color.White.ToCGColor(), Color.FromHex("#0073BD").ToCGColor() };
btn.Layer.InsertSublayer (btnGradient, 0);
btn.Layer.MasksToBounds = true;
btn.Layer.BorderColor = Color.FromHex("#0073BE").ToCGColor();
btn.Layer.BorderWidth = 1;
btn.SetTitleColor(Color.Black.ToUIColor (), UIControlState.Normal);
}
}
【问题讨论】:
-
你能发布你的自定义渲染器吗?
标签: ios uibutton xamarin.forms cagradientlayer