teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

修正

2018/09/05 13:11

投稿

wai21
wai21

スコア32

title CHANGED
File without changes
body CHANGED
@@ -11,14 +11,14 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```Swift
14
- class GenerateSymbolImageViewController: NSViewController {
14
+ class GenerateImageViewController: NSViewController {
15
15
  @IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
16
16
  @IBAction func generateImage(_ sender: NSButton) {
17
17
  generateImageProgressBar.minValue = 0.0
18
18
  generateImageProgressBar.maxValue = 100.0
19
19
  generateImageProgressBar.doubleValue = 0.0
20
20
 
21
- for i in 1...10000 {
21
+ for i in 1...1000 {
22
22
  DispatchQueue.main.async {
23
23
  // 1.画像として保存するNSViewのインスタンスを作成
24
24
  let image = NSView()
@@ -34,7 +34,7 @@
34
34
  let imageName = "image" + String(i) + ".png"
35
35
 
36
36
  // 保存するurlの作成
37
- let url = URL(fileURLWithPath: self.directoryPathLabel.stringValue)
37
+ let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
38
38
  let imageURL = url.appendingPathComponent(imageName)
39
39
 
40
40
  DispatchQueue.global().async {
@@ -44,10 +44,10 @@
44
44
 
45
45
  DispatchQueue.main.async {
46
46
  // 4.プログレスバーを更新する
47
- self.generateImageProgressBar.doubleValue += 0.01
47
+ self.generateImageProgressBar.doubleValue += 0.1
48
48
  }
49
49
  } catch(_) {
50
- self.generateImageProgressBar.doubleValue += 0.01
50
+ self.generateImageProgressBar.doubleValue += 0.1
51
51
  }
52
52
  }
53
53
  }

1

プログレスバーの初期設定と更新処理の追加

2018/09/05 13:11

投稿

wai21
wai21

スコア32

title CHANGED
File without changes
body CHANGED
@@ -11,38 +11,54 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```Swift
14
+ class GenerateSymbolImageViewController: NSViewController {
15
+ @IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
14
- for i in 1...10000 {
16
+ @IBAction func generateImage(_ sender: NSButton) {
15
- DispatchQueue.main.async {
17
+ generateImageProgressBar.minValue = 0.0
18
+ generateImageProgressBar.maxValue = 100.0
16
- // 1.画像として保存するNSViewのインスタンスを作成
19
+ generateImageProgressBar.doubleValue = 0.0
17
- let image = NSView()
18
20
 
21
+ for i in 1...10000 {
22
+ DispatchQueue.main.async {
23
+ // 1.画像として保存するNSViewのインスタンスを作成
24
+ let image = NSView()
25
+
19
- // 2.NSViewのインスタンスをData型に変換する
26
+ // 2.NSViewのインスタンスをData型に変換する
20
- let rep = symbol.bitmapImageRepForCachingDisplay(in: image.bounds)!
27
+ let rep = symbol.bitmapImageRepForCachingDisplay(in: symbol.bounds)!
21
- symbol.cacheDisplay(in: image.bounds, to: rep)
28
+ symbol.cacheDisplay(in: symbol.bounds, to: rep)
22
- guard let imageData = rep.representation(using: .png, properties: [:]) else {
29
+ guard let imageData = rep.representation(using: .png, properties: [:]) else {
23
- return
30
+ return
24
- }
31
+ }
25
-
26
- // 画像のファイル名作成
27
- let imageName = "image" + String(i) + ".png"
28
-
29
- // 保存するurlの作成
30
- let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
31
- let imageURL = url.appendingPathComponent(imageName)
32
-
33
- DispatchQueue.global().async {
34
- do {
35
-          // 3.画像を保存する
36
- try imageData.write(to: imageURL)
37
32
 
33
+ // 画像のファイル名の作成
34
+ let imageName = "image" + String(i) + ".png"
35
+
36
+ // 保存するurlの作成
37
+ let url = URL(fileURLWithPath: self.directoryPathLabel.stringValue)
38
+ let imageURL = url.appendingPathComponent(imageName)
39
+
40
+ DispatchQueue.global().async {
41
+ do {
42
+ // 3.画像を保存する
43
+ try imageData.write(to: imageURL)
44
+
38
- DispatchQueue.main.async {
45
+ DispatchQueue.main.async {
39
- // 4.プログレスバーを更新する
46
+ // 4.プログレスバーを更新する
47
+ self.generateImageProgressBar.doubleValue += 0.01
48
+ }
49
+ } catch(_) {
50
+ self.generateImageProgressBar.doubleValue += 0.01
51
+ }
40
52
  }
41
-
42
- } catch(_) {
43
53
  }
44
54
  }
45
55
  }
56
+ override func viewDidLoad() {
57
+ super.viewDidLoad()
58
+
59
+ // プログレスバーの設定
60
+ generateImageProgressBar.isIndeterminate = false
61
+ }
46
62
  }
47
63
 
48
64
  ```