我正在尝试为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();
}
答案 0 :(得分:0)
我按照@dip的建议将图层更新从LayoutSubview移到了Draw
public override void Draw(CGRect rect)
{
_gradient.Frame = ContentView.Bounds;
base.Draw(rect);
}
布局正在工作。