AutoLayoutの設定をしたUIView上(の中)に等間隔でUIButtonを配置するプログラムを書いています。(厳密な「等間隔」ではなく、はみ出ない程度に配置する、といったもの)
UIButtonは7つで、カレンダーの1週間分を表示するようなイメージです。
UIViewのwidthからボタンの幅と間隔を計算して配置する、というだけのプログラムなのですが、シミュレーターで確認しますとUIViewからはみ出てしまいます。デバッグしてみても値は正しく計算されているようなので、何が原因なのか分からずにいます。もしかしたら何か根本的に間違っているのかもしれません^^;

恐れ入りますが、お気づきの点がありましたらご指摘頂けないでしょうか?

〜追記〜
viewOya.bounds.widthで「359」という値を取得していますが、これが誤っているようです。
実際には「343」なのでこの値を取得したいのですが、bounds.width,frame.widthとも「359」を返してきます。
正しいサイズを取得するにはどうしたら良いのでしょうか?


*ピンク色の背景の部分がボタンを配置したいUIView。
*AutoLayoutは、Leading,TrailingともSuperviewから「0」に設定しました。
AutoLayoutを設定したUIView


*シミュレーターでの見た目(「6」のボタンが右にはみ出てしまっています^^;??)
シミュレーターでの見た目


*ソース

func test() {

    viewOya.setNeedsLayout()
    viewOya.layoutIfNeeded()

    let intOyaW: Int = Int(viewOya.bounds.width)    //親viewの幅
    let intBtnW: Int = intOyaW * 12 / 100           //ボタンの幅(親viewの幅の12%としよう)
    let intSpan: Int = (intOyaW - intBtnW * 7) / 6  //間隔
    let incl: Int    = intBtnW + intSpan            //増分値
    print("intOyaW -> \(intOyaW)")
    print("intBtnW -> \(intBtnW)")
    print("intSpan -> \(intSpan)")
    print("intBtnW*7+intSpan*6 -> \(intBtnW*7+intSpan*6)")

    for i in 0...6 {

        //ボタン作成
        let btn: UIButton = UIButton()
        btn.setTitle(String(i), forState: .Normal)
        btn.setTitleColor(UIColor.whiteColor(), forState: .Normal)
        btn.backgroundColor = UIColor.lightGrayColor()

        //位置・サイズを定義
        let posX  = CGFloat(incl * (i % 7))
        let posY  = CGFloat(0)
        let sizeW = CGFloat(intBtnW)
        let sizeH = CGFloat(intBtnW)
        btn.frame = CGRectMake(posX, posY, sizeW, sizeH)

        //ボタンを配置
        viewOya.addSubview(btn)

        //デバッグ
        print("btn\(i)  minX -> \(btn.frame.minX)  width -> \(btn.frame.size.width)  maxX -> \(btn.frame.maxX)")
    }

}

*デバッグ出力結果

intOyaW -> 359
intBtnW -> 43
intSpan -> 9
intBtnW*7+intSpan*6 -> 355

btn0 minX -> 0.0 width -> 43.0 maxX -> 43.0
btn1 minX -> 52.0 width -> 43.0 maxX -> 95.0
btn2 minX -> 104.0 width -> 43.0 maxX -> 147.0
btn3 minX -> 156.0 width -> 43.0 maxX -> 199.0
btn4 minX -> 208.0 width -> 43.0 maxX -> 251.0
btn5 minX -> 260.0 width -> 43.0 maxX -> 303.0
btn6 minX -> 312.0 width -> 43.0 maxX -> 355.0


iPhone6のシミュレーターで検証しています。
親ビューの幅が359で「6」のボタンのmaxXが355なので、親ビューからはみ出ることはないと思うのですが、?です。

どうぞよろしくお願いいたします。