質問編集履歴
2
脱字
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
```swift
|
15
|
-
//イメージビューの
|
15
|
+
//イメージビューの幅
|
16
16
|
let width = self.imageView.frame.width
|
17
17
|
let center = width / 2
|
18
18
|
//ラベルの作成
|
1
ラベルの設定に関しては自己解決出来ました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,29 +1,46 @@
|
|
1
1
|
質問失礼します。
|
2
2
|
|
3
3
|
座標とテキストの値が可変なラベルをイメージビューに収まるように表示させたいと思っているのですが、
|
4
|
-
yに最大値を設定された時にラベルの開始地点が画面の端になってしまう為、ラベルがイメージビューからはみ出してしまいます。
|
4
|
+
x・yに最大値を設定された時にラベルの開始地点が画面の端になってしまう為、ラベルがイメージビューからはみ出してしまいます。
|
5
|
-
なのでyから高さを引いたものをラベルのframe
|
5
|
+
なのでx・yから高さや幅を引いたものをラベルのframeの開始地点として設定したのですが、
|
6
|
-
|
6
|
+
開始地点に設定してるx・yが中間くらいの値の時、ラベルがイメージビューの中央に配置されない為、表示に違和感が残ります。
|
7
|
+
中間くらいの値の時はイメージビューの中央にラベルの中央を揃えたいのですが、
|
8
|
+
自分で色々と試しても上手くいきませんでした。
|
7
|
-
もし
|
9
|
+
もし良い方法があればご教示いただきたいです。
|
8
10
|
|
9
11
|
よろしくお願い致します。
|
10
12
|
|
11
13
|
|
12
14
|
```swift
|
15
|
+
//イメージビューの
|
16
|
+
let width = self.imageView.frame.width
|
17
|
+
let center = width / 2
|
18
|
+
//ラベルの作成
|
13
19
|
let titleLabel = UILabel()
|
14
|
-
titleLabel.frame = CGRect(x: xValue, y: yValue, width:
|
20
|
+
titleLabel.frame = CGRect(x: xValue, y: yValue, width: Double(center), height: 0)
|
15
21
|
titleLabel.text = record.title
|
16
22
|
titleLabel.numberOfLines = 0
|
17
23
|
titleLabel.lineBreakMode = .byCharWrapping
|
18
|
-
//ラベルの高さを表示された文字列に合わせる
|
19
|
-
titleLabel.sizeToFit()
|
24
|
+
titleLabel.sizeToFit()
|
25
|
+
|
20
|
-
//ラベルの高さを取得
|
26
|
+
//ラベルの高さを取得する
|
21
27
|
let labelHeight = titleLabel.bounds.height
|
22
|
-
//
|
28
|
+
//ラベルの高さがイメージビューより高かったら
|
23
29
|
if (yValue + Double(labelHeight)) >= Double(height) {
|
24
|
-
//
|
30
|
+
//ラベルの高さを引く
|
25
31
|
yValue -= Double(labelHeight)
|
26
32
|
}
|
27
|
-
//イメージビュー
|
33
|
+
//ラベルの幅がイメージビューより長かったら
|
34
|
+
if (xValue + Double(center)) >= Double(width) {
|
35
|
+
//ラベルの幅を引く
|
36
|
+
xValue -= Double(center)
|
37
|
+
//文字を右揃えにする
|
38
|
+
titleLabel.textAlignment = NSTextAlignment.right
|
39
|
+
}
|
40
|
+
//設定を反映させる
|
41
|
+
titleLabel.frame = CGRect(x: xValue, y: yValue, width: Double(center), height: Double(labelHeight))
|
42
|
+
//ラベルを表示させる
|
28
|
-
self.
|
43
|
+
self.imageView.addSubview(titleLabel)
|
29
|
-
```
|
44
|
+
```
|
45
|
+
|
46
|
+

|