回答編集履歴

2

参考コード追加

2019/04/01 16:03

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -1,3 +1,63 @@
1
1
  ラベルだけで枠まで表現するのではなくて、背景枠はUIViewで作成してその子としてUILabelを入れ、ラベルの背景などはClearにします。
2
2
 
3
3
  そうすれば枠からのオフセットは親のUIViewからUILabelまでの距離なので好きに変更できます。
4
+
5
+
6
+
7
+ ```Swift
8
+
9
+ let frameView = UIView()
10
+
11
+
12
+
13
+ // frameViewはbackgroundColorやcornerRadiusなどを設定
14
+
15
+
16
+
17
+ let label = UILabel()
18
+
19
+ label.backgroundColor = UIColor.clear
20
+
21
+ label.text = "~"
22
+
23
+ label.sizeToFit()
24
+
25
+ var lr = label.frame
26
+
27
+
28
+
29
+ // labelの親(frameView)からの距離(15, 15)
30
+
31
+ lr.origin.x = 15
32
+
33
+ lr.origin.y = 15
34
+
35
+ label.frame = lr
36
+
37
+
38
+
39
+ var vr = lr;
40
+
41
+ vr.origin.y = 表示位置適当に設定
42
+
43
+ vr.origin.x = 表示位置適当に設定
44
+
45
+
46
+
47
+ // frameViewのサイズはラベルのサイズ+上下/左右のマージン
48
+
49
+ vr.size.width = lr.size.width + 30
50
+
51
+ vr.size.height = lr.size.height + 30
52
+
53
+ frameView.frame = vr
54
+
55
+
56
+
57
+ // self.viewの子として frameView を追加、frameViewの子としてlabelを追加
58
+
59
+ frameView.addSubView(label)
60
+
61
+ self.view.addSubview(frameView)
62
+
63
+ ```

1

誤記修正

2019/04/01 16:03

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -1,3 +1,3 @@
1
1
  ラベルだけで枠まで表現するのではなくて、背景枠はUIViewで作成してその子としてUILabelを入れ、ラベルの背景などはClearにします。
2
2
 
3
- そうすれば枠からのオフセット親のUIViewからUILabelまでの距離なので好きに変更できます。
3
+ そうすれば枠からのオフセット親のUIViewからUILabelまでの距離なので好きに変更できます。