MonoTouch - 带自定义渐变的UIButton

时间:2012-10-17 12:31:05

标签: xamarin.ios

尝试使用CGGradientLayer在MonoTouch中创建自定义UIButton。

以下是我在网上找到的一些教程,例如:

http://www.apptite.be/tutorial_custom_uibuttons.php#gradients

到目前为止无法显示任何内容,目前只是一个空按钮。

这是我从ViewDidLoad运行的代码:

var gradient = new CAGradientLayer();

gradient.Colors = new MonoTouch.CoreGraphics.CGColor[]
{
    new MonoTouch.CoreGraphics.CGColor(115f, 181f, 216f, 1f),
    new MonoTouch.CoreGraphics.CGColor(35f, 101f, 136f, 1f)
};

gradient.Locations = new NSNumber[]
{
    .5f,
    1f
};

gradient.Frame = btnSearch.Layer.Bounds;

btnSearch.Layer.AddSublayer(gradient);

btnSearch.Layer.MasksToBounds = true;

我错过了哪些想法?

谢谢:)

1 个答案:

答案 0 :(得分:3)

似乎CGColor的构造函数接受0.0f-1.0f浮点范围内的RGB值,而不是0-255整数。

作为替代方案,尝试通过UIColors设置CGColors:

gradient.Colors = new MonoTouch.CoreGraphics.CGColor[]
{
    UIColor.FromRGB (115, 181, 216).CGColor,
    UIColor.FromRGB (35, 101, 136).CGColor
};

BTW,漂亮的蓝色渐变:)