我有一个要在其中应用渐变的UITableViewCellUIView)的gradientView。此单元格具有AutoLayout,因此我想在gradientView框架更改时更新渐变框架。

我尝试了以下方法,但没有一个起作用:

-(void)layoutSubviews{
    [super layoutSubviews];
     self.gradient.frame = self.gradientView.bounds;
}

-(void)updateConstraints{
    [super updateConstraints];
    self.gradient.frame = self.gradientView.bounds;
}

-(void)updateConstraintsIfNeeded{
    [super updateConstraintsIfNeeded];
    self.gradient.frame = self.gradientView.bounds;
}


我也不能在单元格内使用它:

- (void)viewDidLayoutSubviews{}

最佳答案

我建议创建一个新的UIView子类,其子层(layerClass)是CAGradientLayer。根据需要应用颜色。每当视图的bounds更改时,iOS也会在内部调整layer的大小。

如果您想使其更简单,只需从这里获取OBGradientView并在您的项目中使用它即可。 https://github.com/ole/OBGradientView

10-08 12:29