回答編集履歴

2

説明を追記。

2016/02/29 06:01

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- 以上を踏まえて、
23
+ 以上を踏まえて、追加した制約を保存しておき、スイッチON/OFFで制約の値(constant)を変更するようにします。
24
24
 
25
25
 
26
26
 

1

constraintEqualToAnchorについて追記。

2016/02/29 06:01

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1,6 +1,64 @@
1
- 一部のみ。
1
+ # constraintEqualToAnchor
2
2
 
3
3
 
4
+
5
+ `constraintEqualToAnchor`は、制約を**追加**するようで、例えば、
6
+
7
+
8
+
9
+ ```objectivec
10
+
11
+ [self.myImageView.widthAnchor constraintEqualToConstant:100].active = YES;
12
+
13
+ [self.myImageView.widthAnchor constraintEqualToConstant:120].active = YES;
14
+
15
+ ```
16
+
17
+
18
+
19
+ こうすると、後ろの制約(width=120)だけが有効になるのではなく、両方の制約が設定されてしまいエラー(Unable to simultaneously satisfy constraints.)になります。
20
+
21
+
22
+
23
+ 以上を踏まえて、
24
+
25
+
26
+
27
+ ```objectivec
28
+
29
+ //保存用の変数を用意
30
+
31
+ NSLayoutConstraint *constraintLeading;
32
+
33
+
34
+
35
+ //初期化
36
+
37
+ constraintLeading = [self.myImageView.leadingAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.leadingAnchor constant:12.0];
38
+
39
+ constraintLeading.active = YES;
40
+
41
+
42
+
43
+ //スイッチON
44
+
45
+ constraintLeading.constant = 73.0;
46
+
47
+
48
+
49
+ //スイッチOFF
50
+
51
+ constraintLeading.constant = 12.0;
52
+
53
+
54
+
55
+ ```
56
+
57
+
58
+
59
+
60
+
61
+ # leadingAnchorとleftAnchor
4
62
 
5
63
  > leadingAnchorとleftAnchorの違いは何なのでしょうか?
6
64