質問編集履歴
2
脱字
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
```swift
|
28
28
|
|
29
|
-
//イメージビューの
|
29
|
+
//イメージビューの幅
|
30
30
|
|
31
31
|
let width = self.imageView.frame.width
|
32
32
|
|
1
ラベルの設定に関しては自己解決出来ました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,13 +4,17 @@
|
|
4
4
|
|
5
5
|
座標とテキストの値が可変なラベルをイメージビューに収まるように表示させたいと思っているのですが、
|
6
6
|
|
7
|
-
yに最大値を設定された時にラベルの開始地点が画面の端になってしまう為、ラベルがイメージビューからはみ出してしまいます。
|
7
|
+
x・yに最大値を設定された時にラベルの開始地点が画面の端になってしまう為、ラベルがイメージビューからはみ出してしまいます。
|
8
8
|
|
9
|
-
なのでyから高さを引いたものをラベルのframe
|
9
|
+
なのでx・yから高さや幅を引いたものをラベルのframeの開始地点として設定したのですが、
|
10
10
|
|
11
|
-
|
11
|
+
開始地点に設定してるx・yが中間くらいの値の時、ラベルがイメージビューの中央に配置されない為、表示に違和感が残ります。
|
12
12
|
|
13
|
+
中間くらいの値の時はイメージビューの中央にラベルの中央を揃えたいのですが、
|
14
|
+
|
15
|
+
自分で色々と試しても上手くいきませんでした。
|
16
|
+
|
13
|
-
もし
|
17
|
+
もし良い方法があればご教示いただきたいです。
|
14
18
|
|
15
19
|
|
16
20
|
|
@@ -22,9 +26,17 @@
|
|
22
26
|
|
23
27
|
```swift
|
24
28
|
|
29
|
+
//イメージビューの
|
30
|
+
|
31
|
+
let width = self.imageView.frame.width
|
32
|
+
|
33
|
+
let center = width / 2
|
34
|
+
|
35
|
+
//ラベルの作成
|
36
|
+
|
25
37
|
let titleLabel = UILabel()
|
26
38
|
|
27
|
-
titleLabel.frame = CGRect(x: xValue, y: yValue, width:
|
39
|
+
titleLabel.frame = CGRect(x: xValue, y: yValue, width: Double(center), height: 0)
|
28
40
|
|
29
41
|
titleLabel.text = record.title
|
30
42
|
|
@@ -32,26 +44,48 @@
|
|
32
44
|
|
33
45
|
titleLabel.lineBreakMode = .byCharWrapping
|
34
46
|
|
35
|
-
|
47
|
+
titleLabel.sizeToFit()
|
36
48
|
|
37
|
-
|
49
|
+
|
38
50
|
|
39
|
-
//ラベルの高さを取得
|
51
|
+
//ラベルの高さを取得する
|
40
52
|
|
41
53
|
let labelHeight = titleLabel.bounds.height
|
42
54
|
|
43
|
-
//
|
55
|
+
//ラベルの高さがイメージビューより高かったら
|
44
56
|
|
45
57
|
if (yValue + Double(labelHeight)) >= Double(height) {
|
46
58
|
|
47
|
-
//
|
59
|
+
//ラベルの高さを引く
|
48
60
|
|
49
61
|
yValue -= Double(labelHeight)
|
50
62
|
|
51
63
|
}
|
52
64
|
|
53
|
-
//イメージビュー
|
65
|
+
//ラベルの幅がイメージビューより長かったら
|
54
66
|
|
67
|
+
if (xValue + Double(center)) >= Double(width) {
|
68
|
+
|
69
|
+
//ラベルの幅を引く
|
70
|
+
|
71
|
+
xValue -= Double(center)
|
72
|
+
|
73
|
+
//文字を右揃えにする
|
74
|
+
|
75
|
+
titleLabel.textAlignment = NSTextAlignment.right
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
//設定を反映させる
|
80
|
+
|
81
|
+
titleLabel.frame = CGRect(x: xValue, y: yValue, width: Double(center), height: Double(labelHeight))
|
82
|
+
|
83
|
+
//ラベルを表示させる
|
84
|
+
|
55
|
-
self.m
|
85
|
+
self.imageView.addSubview(titleLabel)
|
56
86
|
|
57
87
|
```
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
![イメージ説明](1f341dccb3ce41dc559a7e05bf5ee765.png)
|