質問編集履歴

4

こーど修正

2018/01/25 07:48

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -414,7 +414,7 @@
414
414
 
415
415
 
416
416
 
417
- // 一つ前のラベル qlabels[c-1] を利用して座標をずらす方法
417
+ // 一つ前のラベル qlabels[c-1] を利用して座標をずらす方法
418
418
 
419
419
  for c in 0..<qlabels.count {
420
420
 

3

コード修正

2018/01/25 07:48

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ```Swift3にて、UILabelを縦に並べて表示させた場合に、文字列が多いなどで改行させてラベルの高さを動的に可変させた場合に、それ以降に並んだラベルの座標位置を自動的にずらす方法を模索しているのですが、苦戦しております。
1
+ Swift3にて、UILabelを縦に並べて表示させた場合に、文字列が多いなどで改行させてラベルの高さを動的に可変させた場合に、それ以降に並んだラベルの座標位置を自動的にずらす方法を模索しているのですが、苦戦しております。
2
2
 
3
3
 
4
4
 

2

コード修正

2018/01/25 07:43

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,3 @@
1
- ```ここに言語を入力
2
-
3
- コード
4
-
5
1
  ```Swift3にて、UILabelを縦に並べて表示させた場合に、文字列が多いなどで改行させてラベルの高さを動的に可変させた場合に、それ以降に並んだラベルの座標位置を自動的にずらす方法を模索しているのですが、苦戦しております。
6
2
 
7
3
 
@@ -354,6 +350,10 @@
354
350
 
355
351
 
356
352
 
353
+
354
+
355
+
356
+
357
357
  ■ 回答を参考に修正したコード
358
358
 
359
359
  ```Swift3

1

コード修正

2018/01/25 07:42

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
+ ```ここに言語を入力
2
+
3
+ コード
4
+
1
- Swift3にて、UILabelを縦に並べて表示させた場合に、文字列が多いなどで改行させてラベルの高さを動的に可変させた場合に、それ以降に並んだラベルの座標位置を自動的にずらす方法を模索しているのですが、苦戦しております。
5
+ ```Swift3にて、UILabelを縦に並べて表示させた場合に、文字列が多いなどで改行させてラベルの高さを動的に可変させた場合に、それ以降に並んだラベルの座標位置を自動的にずらす方法を模索しているのですが、苦戦しております。
2
6
 
3
7
 
4
8
 
@@ -343,3 +347,99 @@
343
347
 
344
348
 
345
349
  ```
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+ ■ 回答を参考に修正したコード
358
+
359
+ ```Swift3
360
+
361
+ // 文字数が30より多い場合は改行させて、ラベルのheightを高くする
362
+
363
+
364
+
365
+ // offsetYを利用して座標をずらす方法
366
+
367
+     var offsetY: CGFloat = 0
368
+
369
+ for c in qlabels {
370
+
371
+ c.frame.origin.y += offsetY
372
+
373
+ if (c.text?.characters.count)! > 30 {
374
+
375
+ c.numberOfLines = 0
376
+
377
+ c.frame.size.height += 20
378
+
379
+ offsetY += 20
380
+
381
+ c.frame = CGRect(x: 20, y: c.frame.origin.y, width: 335, height: c.frame.size.height)
382
+
383
+ }
384
+
385
+ }
386
+
387
+
388
+
389
+
390
+
391
+ // maxYを利用して座標をずらす方法
392
+
393
+ var maxY: CGFloat = 60
394
+
395
+ for c in qlabels {
396
+
397
+ c.frame.origin.y = maxY
398
+
399
+ if (c.text?.characters.count)! > 30 {
400
+
401
+ c.numberOfLines = 0
402
+
403
+ c.frame.size.height += 20
404
+
405
+ c.frame = CGRect(x: 20, y: maxY, width: 335, height: c.frame.size.height)
406
+
407
+ }
408
+
409
+ maxY = c.frame.maxY
410
+
411
+ }
412
+
413
+
414
+
415
+
416
+
417
+ // 一つ前のラベル qlabels[c-1] を利用して座標をずらす方法
418
+
419
+ for c in 0..<qlabels.count {
420
+
421
+       qlabels[0].frame.origin.y = 60
422
+
423
+ if c > 0 {
424
+
425
+ qlabels[c].frame.origin.y = qlabels[c-1].frame.maxY
426
+
427
+ }
428
+
429
+ if (qlabels[c].text?.characters.count)! > 30 {
430
+
431
+ qlabels[c].numberOfLines = 0
432
+
433
+ qlabels[c].frame.size.height += 20
434
+
435
+ qlabels[c].frame = CGRect(x: 20, y: qlabels[c-1].frame.maxY, width: 335, height: qlabels[c].frame.size.height)
436
+
437
+ }
438
+
439
+ }
440
+
441
+
442
+
443
+
444
+
445
+ ```