質問編集履歴

2

修正

2018/09/05 13:11

投稿

wai21
wai21

スコア32

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```Swift
26
26
 
27
- class GenerateSymbolImageViewController: NSViewController {
27
+ class GenerateImageViewController: NSViewController {
28
28
 
29
29
  @IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
30
30
 
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- for i in 1...10000 {
41
+ for i in 1...1000 {
42
42
 
43
43
  DispatchQueue.main.async {
44
44
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  // 保存するurlの作成
72
72
 
73
- let url = URL(fileURLWithPath: self.directoryPathLabel.stringValue)
73
+ let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
74
74
 
75
75
  let imageURL = url.appendingPathComponent(imageName)
76
76
 
@@ -90,13 +90,13 @@
90
90
 
91
91
  // 4.プログレスバーを更新する
92
92
 
93
- self.generateImageProgressBar.doubleValue += 0.01
93
+ self.generateImageProgressBar.doubleValue += 0.1
94
94
 
95
95
  }
96
96
 
97
97
  } catch(_) {
98
98
 
99
- self.generateImageProgressBar.doubleValue += 0.01
99
+ self.generateImageProgressBar.doubleValue += 0.1
100
100
 
101
101
  }
102
102
 

1

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

2018/09/05 13:11

投稿

wai21
wai21

スコア32

test CHANGED
File without changes
test CHANGED
@@ -24,67 +24,99 @@
24
24
 
25
25
  ```Swift
26
26
 
27
- for i in 1...10000 {
27
+ class GenerateSymbolImageViewController: NSViewController {
28
28
 
29
- DispatchQueue.main.async {
29
+ @IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
30
30
 
31
- // 1.画像として保存するNSViewのインスタンスを作成
31
+ @IBAction func generateImage(_ sender: NSButton) {
32
32
 
33
- let image = NSView()
33
+ generateImageProgressBar.minValue = 0.0
34
+
35
+ generateImageProgressBar.maxValue = 100.0
36
+
37
+ generateImageProgressBar.doubleValue = 0.0
34
38
 
35
39
 
36
40
 
37
- // 2.NSViewのインスタンスをData型に変換する
41
+ for i in 1...10000 {
38
42
 
39
- let rep = symbol.bitmapImageRepForCachingDisplay(in: image.bounds)!
43
+ DispatchQueue.main.async {
40
44
 
41
- symbol.cacheDisplay(in: image.bounds, to: rep)
45
+ // 1.画像として保存するNSViewのインスタンスを作成
42
46
 
43
- guard let imageData = rep.representation(using: .png, properties: [:]) else {
47
+ let image = NSView()
44
48
 
45
- return
46
49
 
47
- }
48
50
 
49
-
51
+ // 2.NSViewのインスタンスをData型に変換する
50
52
 
51
- // 画像のファイル名作成
53
+ let rep = symbol.bitmapImageRepForCachingDisplay(in: symbol.bounds)!
52
54
 
53
- let imageName = "image" + String(i) + ".png"
55
+ symbol.cacheDisplay(in: symbol.bounds, to: rep)
54
56
 
55
-
57
+ guard let imageData = rep.representation(using: .png, properties: [:]) else {
56
58
 
57
- // 保存するurlの作成
58
-
59
- let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
60
-
61
- let imageURL = url.appendingPathComponent(imageName)
62
-
63
-
64
-
65
- DispatchQueue.global().async {
66
-
67
- do {
59
+ return
68
-
69
-          // 3.画像を保存する
70
-
71
- try imageData.write(to: imageURL)
72
-
73
-
74
-
75
- DispatchQueue.main.async {
76
-
77
- // 4.プログレスバーを更新する
78
60
 
79
61
  }
80
62
 
81
63
 
82
64
 
65
+ // 画像のファイル名の作成
66
+
67
+ let imageName = "image" + String(i) + ".png"
68
+
69
+
70
+
71
+ // 保存するurlの作成
72
+
73
+ let url = URL(fileURLWithPath: self.directoryPathLabel.stringValue)
74
+
75
+ let imageURL = url.appendingPathComponent(imageName)
76
+
77
+
78
+
79
+ DispatchQueue.global().async {
80
+
81
+ do {
82
+
83
+ // 3.画像を保存する
84
+
85
+ try imageData.write(to: imageURL)
86
+
87
+
88
+
89
+ DispatchQueue.main.async {
90
+
91
+ // 4.プログレスバーを更新する
92
+
93
+ self.generateImageProgressBar.doubleValue += 0.01
94
+
95
+ }
96
+
83
- } catch(_) {
97
+ } catch(_) {
98
+
99
+ self.generateImageProgressBar.doubleValue += 0.01
100
+
101
+ }
102
+
103
+ }
84
104
 
85
105
  }
86
106
 
87
107
  }
108
+
109
+ }
110
+
111
+ override func viewDidLoad() {
112
+
113
+ super.viewDidLoad()
114
+
115
+
116
+
117
+ // プログレスバーの設定
118
+
119
+ generateImageProgressBar.isIndeterminate = false
88
120
 
89
121
  }
90
122