我有一个矩形边界(10,20,100,200),CGPoints是StartPoint(0.5,0.5),EndPoints是(1,1)。从这些方面如何计算细分界限?我需要为CGGradient应用此边界作为起点和终点。
例如代码:
GradientColor gradientColor1 = new GradientColor(){StartPoint = new CGPoint(0.5, 0), EndPoint= new CGPoint(0.5, 1)};
GradientStop stop1 = new GradientStop() { Color = UIColor.Red, Offset = 0.1f };
GradientStop stop2 = new GradientStop() { Color = UIColor.Blue, Offset = 0.9f };
你可以帮我解决这个问题吗?
答案 0 :(得分:1)
这是一个在当前CGContext中创建从左到右线性渐变的示例。
using (var context = UIGraphics.GetCurrentContext ()) {
context.SaveState();
var startPoint = new CGPoint(rect.Left, 0);
var endPoint = new CGPoint(rect.Right, 0);
var components = new CGColor[] { UIColor.Red.CGColor, UIColor.Blue.CGColor };
using (var rgb = CGColorSpace.CreateDeviceRGB()) {
var gradient = new CGGradient(rgb, components);
context.DrawLinearGradient(gradient, startPoint, endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation);
};
context.RestoreState();
}
更改起点和终点可以使渐变颜色从右到左,上/下,对角等等。