具有渐变层的 TableViewCell -> 布局问题

TableViewCell with gradient layer -> layout issues

我正在尝试为 TableViewCell 添加渐变。我正在更新 LayoutSubview() 中的渐变层。当我调试时,它看起来像是为图层框架设置了正确的值。但是渐变不是 "redrawn" 或在每次旋转时显示的渐变与先前方向的大小一样。我做错了什么?

public override void AwakeFromNib()
    {
        base.AwakeFromNib();

        _gradient = new CAGradientLayer();
        _gradient.Frame = ContentView.Bounds;
        _gradient.BackgroundColor = UIColor.Red.CGColor;
        _gradient.StartPoint = new CGPoint(0, 0);
        _gradient.EndPoint = new CGPoint(1, 1);
        _gradient.Colors = new[] { _topColor, _bottomColor };
        this.ContentView.Layer.InsertSublayer(_gradient, 0);
    }

    public override void LayoutSubviews()
    {
        _gradient.Frame = ContentView.Bounds;
        base.LayoutSubviews();
    }

我按照@dip

的建议将图层更新从 LayoutSubview 移到了 Draw
    public override void Draw(CGRect rect)
    {
        _gradient.Frame = ContentView.Bounds;
        base.Draw(rect);
    }

现在布局正常。