FrameとBoundsの違いを理解する
はじめに
UIKitを触ったときにframe
とかboudns
とかで情報が散乱していました。
今回はframe
, bounds
について情報を整理します。
環境
Swift 5.4.2
Xcode 12.5.2
macOS Big Sur 11.5.2
frame
とbounds
の違い
画像で説明したらわかりやすかったです。
frame
の場合、起点がルートビューの左上です。
一方、bounds
の起点は、自身の左上でした。
frameの使用例
ViewController.swift
// X方向の最小値を取得する
view.frame.minX
// X方向の中央値を取得する
view.frame.midX
// X方向の最大値を取得する
view.frame.maxX
// NavigationBarのHeightを取得する
navigationController?.navigationBar.frame.height
// TabBArのHeightを取得する
tabBarController?.tabBar.frame.height
bounds
の使用例
ViewController.swift
// スクリーンのサイズを取得する
UIScreen.main.bounds
NavigationBarの下にボタンを追加する
frame
を使って、NavigationBarの下にボタンを追加してみます。
ViewController.swift
// NavigationBarのy座標を取得します
let navBarBottom = navigationController.navigationBar.frame.maxY
// Viewの幅を利用して、ボタンの幅を取得します
let buttonWidth = view.bounds.width - 20
// UIButtonを定義する際に、NavigationBarのbottomを利用します
let button = UIButton(frame: CGRect(x: 10, y: navBarBottom + 10, width: buttonWidth, height: 50))
...
view.addSubview(button)
参考リンク
Author And Source
この問題について(FrameとBoundsの違いを理解する), 我々は、より多くの情報をここで見つけました https://qiita.com/h-taro/items/8e4928121e63db9a44ef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .