创建计时器并使用条形来表示剩余时间

时间:2011-12-13 10:30:56

标签: iphone objective-c ios uiimageview uiimage

我目前正在为游戏创建一个计时器,但我对以酒吧形式表示剩余时间的最佳方式感到有些困惑。我有我的计时器启动并运行,我将使用它来缩放图像以表示剩余时间:

通过时间/总时间=经过的时间百分比(x100将是PTE,但没有时间更容易) 图像宽度=(1 - PTE)* StartImageWidth

我无法找到以这种格式缩放图像的任何简单方法,因为宽度参数似乎是只读的,如果我没有弄错,缩放功能是4.x及更高版本?那么有谁知道最好的方法吗?

谢谢, 埃利奥特

2 个答案:

答案 0 :(得分:0)

试试这个

[UIView animateWithDuration:0.1 animations: ^ {
 CGRect frame = CGRectMake(xMargin, yMargin, width, height);
 myBar.frame = frame;
}];

答案 1 :(得分:0)

尝试将条形图转换为stretchchableImage。我做了类似的事情,但更新了一天中的时间。这是我的代码:

UIImage *dayPassed = [UIImage imageNamed:@"dayPassedSmall.png"];
UIImage *passed = [dayPassed stretchableImageWithLeftCapWidth:20.0 topCapHeight:0.0];

UIImageView *dayPassedView = [[[UIImageView alloc] initWithFrame:dayFrame] autorelease];
dayPassedView.image = passed;
[self.view addSubview:dayPassedView];

然后您可以使用以下方法调整宽度:

CGRect imageFrame = dayPassedView.frame;
double relWidth = (1-PTE)*width;
imageFrame.size.width = relWidth;
dayPassedView.frame = imageFrame;

如果你想要从旧框架到新框架的变化动画,你可以,但我认为最重要的是图像必须是可拉伸的。