1

ビュー コントローラー クラスでは、プログラムで 10x10 グリッドにボタンを作成しようとしています。制約があり、ビューのサイズが適切に変更されていますが、印刷ステートメントから戻って表示されるサイズは、サイズ変更されたサイズではなく、ストーリー ボードの元のサイズです。新しいサイズを取得するにはどうすればよいですか?

func buttonGridder() {
    for x in 0..<10 {
        for y in 0..<10{
            let sizer = ButtonGrid.frame.width
            let buttonSize:CGFloat = ButtonGrid.frame.width / CGFloat(10)
            print("\(x), \(y), \(buttonSize), \(sizer)")
            let letterButton = WordButton(column: x, row: y, buttonSize: buttonSize, buttonMargin: 0)
            self.ButtonGrid.addSubview(letterButton)
        }
    }
}
4

1 に答える 1

1

このメソッドで Log 関数を呼び出しviewDidLayoutSubviewsます。これは、ビューが後に制約に従って配置された後に呼び出されるメソッドですviewDidAppear。注 : このメソッドは一度に複数回呼び出されるため、このメソッドを割り当てたり追加したりしないでください。

そして後でビュー サイズを追加または変更する場合はsetNeedsDisplay、ビュー コントローラー内のすべてのビューを再描画するために呼び出します

于 2015-09-03T05:07:01.587 に答える