要实现如下图所示效果,一种思路是封装一个UIView,提供星星个数属性,在属性中赋值并调用[self setNeedsLayout]令视图重绘(之后系统会调用layoutSubviews),覆盖layoutSubviews,在此方法内进行单个星星的frame调整。由于每个星星不需要事件处理,在UIView派生类中添加多个(本例为5个)CALayer,设置其contents属性为CGImage即可。
时间: 2024-10-27 19:31:04
要实现如下图所示效果,一种思路是封装一个UIView,提供星星个数属性,在属性中赋值并调用[self setNeedsLayout]令视图重绘(之后系统会调用layoutSubviews),覆盖layoutSubviews,在此方法内进行单个星星的frame调整。由于每个星星不需要事件处理,在UIView派生类中添加多个(本例为5个)CALayer,设置其contents属性为CGImage即可。