我如何逐步更新我的进度条?

时间:2016-10-25 00:30:06

标签: ios swift progress-bar swift3 dispatch-async

我有代码,我每秒向我的数组添加一个常量,如何在数组更改时每秒更新我的进度条?

<?php	
if(isset($_POST['add'])){

    $genre=$_POST['genre'];
    $desc_genre=mysqli_real_escape_string($cnxn,$_POST['desc_genre']);

    $sql = "INSERT INTO genres (genre, desc_genre) VALUES ('".$genre."', '".$desc_genre."')";
    if(mysqli_query($cnxn, $sql)){
        echo "<script> 
     $('#myModal').modal('show');
 </script>";
    }
?>
<div id="myModal" class="modal hide fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
    <div class="modal-body">
        <p>This Genre Has Been Added Successfully</p>
    </div>
    <div class="modal-footer">
        <button type="button" data-dismiss="modal" class="btn">Cancel</button>
        <button type="button" data-dismiss="modal" class="btn btn-primary">Continue Task</button>
    </div>
</div>

<div class="login-page">
    <?php }else{ ?>
    <div class="form">
        <form class="login-form" name="f1" method="post" action="" enctype="multipart/form-data">
            <input required name="genre" type="text" placeholder="Add Genre"/>
            <textarea required name="desc_genre" type="text" placeholder="Description of the Genre"></textarea>
            <button type="submit" name="add">ADD</button>
        </form>
    </div>

2 个答案:

答案 0 :(得分:1)

使用计时器。假设你的进度视图是0到1并且每秒递增0.1 ......

var timer: Timer?
var array = [String]()

func doStuff() {

    timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { timer in

        self.array.append("foo")

        let change: Float = 0.1
        self.progressView.progress = self.progressView.progress + (change)

        if self.progressView.progress >= 1.0 {
            self.timer?.invalidate()
        }
    })
}

答案 1 :(得分:0)

完成DispatchQueue.global(优先级:.default).async

func upgradeArray() {
        for i in 0...10 {
            DispatchQueue.global(priority: .default).async {
                //sleep(1)
                self.array.append(i)
                print(i)
                DispatchQueue.main.async(execute: {
                    let percentProgress = Float(Float(self.array.count)*100.0/10.0)
                    self.progressBar.setProgress(percentProgress, animated: true)
                })
            }
        }

    }