循环期间更新进度条

时间:2017-01-17 18:07:31

标签: ios objective-c iphone swift swift2

我有两个控制器。在第一个我有一个进度条,并有一个请求,我得到数据和循环。我需要在循环期间更新第一个控制器上的栏。问题是即使它没有更新循环,也只在方法执行完成时更新斜杠。

的firstView:

func addProgress(notification:NSNotification){
    dispatch_async(dispatch_get_main_queue()) {
        self.progressBar.setProgress(CGFloat.init(notification.userInfo!["progress"] as! Int), animated: true)
        self.progressLabel.text = notification.userInfo!["label"] as? String
    }
}

SecondView:

//将更新工具栏的方法

     <connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />

1 个答案:

答案 0 :(得分:0)

我不确定您是否经常切换线程以及绕过通知服务。但是,您应该将进度设置为介于0.0和1.0之间的浮点数。 你正在做的是你将int值从1到JSON.count转换为float。因此,您的进度值始终为1.0或更高。

更好地使用像.setProgress(CGFloat.init(JSON.count) / CGFloat.init(i))这样的东西。

同时执行这两项操作,将您的整数转换为浮动并确保divisio是浮点除法而不是整数除法。 (整数除法将评估为0或1或更多,但在两者之间注明。)