我有一个要在其中应用渐变的UITableViewCell
(UIView
)的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