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

时间:2018-06-22 10:47:52

标签: ios uitableview xamarin layout gradient

我正在尝试为TableViewCell添加渐变。我正在LayoutSubview()中更新渐变层。当我调试时,它似乎为图层框架设置了正确的值。但是不会“重绘”渐变,也不会在每次旋转时显示渐变,并显示先前方向的大小。我在做什么错了?

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

1 个答案:

答案 0 :(得分:0)

我按照@dip的建议将图层更新从LayoutSubview移到了Draw

    public override void Draw(CGRect rect)
    {
        _gradient.Frame = ContentView.Bounds;
        base.Draw(rect);
    }

布局正在工作。