最近はAutoLayoutを使う機会も増えてきましたが、メンテナンス性や書きやすさを考えると、(Non-AutoLayoutな)コードでViewのレイアウトを行うほうがメリットがあるケースも、多々あります。 また基本はAutoLayoutでレイアウトを行いつつも、画面内の特定の動的なsubviewだけはframeを触りながらコードベースで行いたいような場面もあるでしょう。 なので普段はAutoLayoutがメインな方も、使わない場合のレイアウト方法を知っておいて損はないと思います。 この記事ではsubviewのframeをコード上で触りながらレイアウトを行う場合の、方針や注意点についてまとめています。 ViewController内でsubviewのレイアウトを行う場合 青い矩形(blueRect)と、赤い矩形(redRect)をUIViewで作って画面の左右に並べるだけの処理をContr
![[iOS] Swift時代の! コードによるViewレイアウトのベストプラクティス - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ddba3a892123422fcac125e30ccf04de137fbbe7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMzY1ODElMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODcxMjQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9OTMzZmYyNDY2MmM2MmY2ZGQ4MDMyM2IyZGM2Njk2MzE%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253D52e9cc999be75a4787d80a7b8268d152%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCaU9TJTVEJTIwJTIwU3dpZnQlRTYlOTklODIlRTQlQkIlQTMlRTMlODElQUUlMjElMjAlRTMlODIlQjMlRTMlODMlQkMlRTMlODMlODklRTMlODElQUIlRTMlODIlODglRTMlODIlOEJWaWV3JUUzJTgzJUFDJUUzJTgyJUE0JUUzJTgyJUEyJUUzJTgyJUE2JUUzJTgzJTg4JUUzJTgxJUFFJUUzJTgzJTk5JUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJTk3JUUzJTgzJUE5JUUzJTgyJUFGJUUzJTgzJTg2JUUzJTgyJUEzJUUzJTgyJUI5JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9YWQ0MDBjMjE0YzYxZWU5NzU4NGE1OWVjMDU2OTQ3OGY%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBub3JpMDYyMCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTU0YTNhN2EyZTc3YzYxZTk0NGNhMzIzMjc1YmE0OTNl%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D73ef838d6577ce597775f0893a575643)