使用UIProgressView进行图像编辑

时间:2013-03-04 12:47:17

标签: iphone ios objective-c cocoa-touch uiprogressview

在我的应用中,我为image应用过滤器。我想添加UIProgressView,因为完成编辑大约需要几秒钟。如何为此类方法添加UIProgressView并更新完成的百分比?我已经查看了UIProgressView的许多示例,但它们用于Http请求和加载网络数据。如何实现自定义方法?

3 个答案:

答案 0 :(得分:2)

我猜你需要使用Operation Queue。

[NSThread detachNewThreadSelector:@selector(showProgressView:) toTarget:self withObject:nil];

这对我有用,我希望它对你也有用..有一个快乐的编码。!!

答案 1 :(得分:1)

如果您可以控制编辑的完成程度,就像任何代理事件一样,您可以像网络电话或其他人一样更新进度。即使你没有这样的事件,你可能会有一些内部方法,这可以给你一个总进度的增量。

然后你可以有一个接受这个delta的方法,将它添加到现有的进度中。

- (void)updateProgress:(CGFloat)delta
{
    [self.progressView setProgress:self.progressView.progress+delta];
    self.progressLabel.text = [NSString stringWithFormat:@"Completed : %.0f",self.progressView.progress*100];
}

答案 2 :(得分:0)

如果不知道您可以使用哪些数据,很难回答这个问题,但实际上,您需要一个以一致的周期性时间间隔调用的方法,直到图像过滤器被应用为止。执行此操作的一个技巧是,如果您可以为过滤器提供时间估计,然后使用NSTimer来触发方法,直到该时间完成。虽然如果你能确定一个过滤的确切时间,那显然会更好。

从那里你需要将进度视图的进度设置为总时间总和那样的时间......

self.progressView.progress = (float) progress

请注意,虽然进度视图是百分比,但您需要存储两个值进行比较(相互划分)1)总时间量2)总时间量。您可以通过在用户@interface中设置浮动进度来执行此操作。