なえT備忘録

何の参考にもならないかもしれませんが、いつかは参考になるようにします

Frame for "Hogehoge" will be different at run time. の解決法 + .frame プロパティについて

AutoLayoutでConstraintsを付与したオブジェクトを、ちょっとマウスで動かしたり引っ張っちゃったりしたとき、こういうエラーでませんか?※あるいは、Constraints付与前から自分でつくったサイズがあんまり合ってない?時

 

エラーメッセージ見る限り、HogehogeのFrame(たてよこ座標、サイズ情報)は実行時、いま描写している形と変わってしまいますよ、と言っているとはわかる。

 

じゃあどうするのか、という所で、さっきまで手動で動かしたり引っ張ったりして直そうとしてたんですが、エラーが出てるオブジェクトをクリックして、"command", "option",  "="キーを同時押ししたら一発で直してくれるみたいです。

 

stackoverflow.com

 

ずらしちゃったときは、その場でCommand + Zで戻せば良いんだけどね。動画で学習とかしてると次の話にポンポン進むから、ついていくために後回しにしちゃって...みたいなこと、あると思います。

 

 

ちなみに、frameはUIViewのサブクラスが持っているプロパティで、CGRectをかえす。

CGRectは縦横の寸法を返す構造体 で、frameの場合だと要素自身を基準とした座標を返す。これ他にもboundsというプロパティもあって、こっちは要素の親を基準とした相対的な座標、大きさを返す  とのこと。下記ブログにて参照しました。

 

qiita.com

 

UIKitに付随するサブクラスとそのメソッド、プロパティ 多すぎませんか?どうやって覚えればいいんでしょうか(激怒)