【发布时间】:2012-12-10 12:26:06
【问题描述】:
我正在尝试继承 ProgressView 以用作游戏的健康栏,当我尝试覆盖 setProgress 时,它不会被调用。
我希望根据进度浮动值改变颜色。
这是我尝试使用的代码:
@interface AHHealthbar : UIProgressView
...
- (void)setProgress:(float)progress animated:(BOOL)animated
{
if (progress > .5)
{
self.progressTintColor = [UIColor greenColor];
}
if (progress <= .5 && self.progress >= .2)
{
self.progressTintColor = [UIColor yellowColor];
}
if (progress < .2) {
self.progressTintColor = [UIColor redColor];
}
[super setProgress:progress animated:animated];
}
有没有人知道如何覆盖它?还是有更好的想法?
【问题讨论】:
-
您确定将其正确启动为 AHHealthbar(而不是 UIProgressView)吗?很容易忘记这一点,尤其是从 NIB 文件启动时。在调试器中检查你的变量指针类型。
-
我可以确认 AHHealthbar 正在被实例化,但我的 setProgress 方法从未被调用。我覆盖了被调用的drawrect。但我不想自己画,只画颜色。
-
嗯,你尝试过覆盖
-setProgress:吗? -
这正是我想要覆盖的......
标签: ios uiview colors uiprogressview