2

尝试使用 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;

有什么我错过的想法吗?

谢谢 :)

4

1 回答 1

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
};

顺便说一句,漂亮的蓝色渐变 :)

于 2012-10-19T08:25:30.147 回答