static unsafe UIImage DrawCells(int nfc, int cellSize, float[] data) { var width = cellSize * nfc; var height = cellSize * nfc; UIGraphics.BeginImageContext(new CoreGraphics.CGSize(width, height)); var maxi = Array.IndexOf(data, data.Max()); for (var i = 0; i < nfc; i++) { var v = Math.Clamp(data[i], -1f, 1f); var r = v < 0 ? 255 : 0; var g = v >= 0 ? 255 : 0; UIColor.FromRGBA(r, g, 0, (byte)(255 * Math.Abs(v))).SetColor(); UIGraphics.RectFill(new CoreGraphics.CGRect(i * cellSize, 0, cellSize, cellSize)); if (i == maxi) { i.ToString().DrawString(new CoreGraphics.CGPoint(i * cellSize, cellSize), UIFont.SystemFontOfSize(cellSize)); } UIColor.FromWhiteAlpha(1.0f, 0.5f).SetColor(); UIGraphics.RectFrame(new CoreGraphics.CGRect(i * cellSize, 0, cellSize, cellSize)); } var image = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(image); }