

下記コードにおいて、`trailingAnchor`が全く効きません。

最低限のテストとして、ボタンを一つにして横方向の制約`leadingAnchor`と`trailingAnchor`の二つを設定しても、さらには`trailingAnchor`だけを設定しても、`trailingAnchor`の右端との関係は無視され、ボタンは左寄りにしか表示されません。

`trailingAnchor`が効いていないためと思いますが、画面を回転させても横幅は変わりませんが、縦方向はオートレイアウトが効き縦幅は制約通り変化します。

間違っている点があればご指摘いただけないでしょうか。  
また、改善策をご教授いただければ幸いです。

テスト環境  
・Xcode8.3.2  
・iOS10.3.3（iPadMini4実機）

[code]

        @IBOutlet var buttons:[UIButton] = []
    
        ...中略...
    
        //ボタンの表示
        func buttonIndicate(){
    
            for roop in 0...11 {
                //ボタンの横位置を決める
                let button:UIButton = UIButton()
                //表示されるテキスト
                button.setTitle(String(roop), for: .normal)
                //テキストの色
                button.setTitleColor(UIColor.black, for: .normal)
                //バックグラウンドカラー
                button.backgroundColor = UIColor.green
                //タグ番号
                button.tag = roop
                button.restorationIdentifier = String(roop)
                //このあと追加する制約とコンフリクトさせないため
                button.translatesAutoresizingMaskIntoConstraints = false
    
                buttons.append(button)
    
            }
    
            let keyColum = 11
    
            //viewに追加して制約を設定
            for roop in 0...11{
                self.view.addSubview(buttons[roop])
                //X方向の制約
                if roop == 0 {
                    //最初のボタンと左端の関係
                    self.buttons[roop].leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 1).isActive = true
                } else {
                    //前のボタンとの関係
                    self.buttons[roop].leadingAnchor.constraint(equalTo: self.buttons[roop - 1].trailingAnchor, constant: 2).isActive = true
                }
                //幅の制約　前のボタンと同じ幅
                if roop != 0{
                    self.buttons[roop].widthAnchor.constraint(equalTo: self.buttons[roop - 1].widthAnchor).isActive = true
                }
                //一番右のボタンと右端の関係 ここが全く効いていない
                if roop == keyColum{
                    self.buttons[roop].trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -1)
                }
                //Y方向の制約
                //topとの関係
                self.buttons[roop].topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0).isActive = true
                //bottumとの関係
                self.buttons[roop].bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -10).isActive = true
            }
    
        }
    
[/code]


CC BY-SA 3.0
2017-09-08T14:57:27.437
37816
2019-07-22T14:01:10.153
2017-09-09T00:32:20.017
10845
10845
question
swift ios
Swift trailingAnchorが効かない


ケアレスミスでした。  
`isActive = true`が抜けていました。  
申し訳ございませんでした。


CC BY-SA 3.0
2017-09-09T00:38:57.950
37822
2017-09-09T00:38:57.950
10845
37816
answer