به نام خدا

امروزه وقتی با ای او اس و ایکس کد کار میکنیم از بولد ترین مفهومش مفاهیم Auto Layout و Constraint هاست

اما این تنها چیزی نیست که میتونه ویوی ما رو بچینه بلکه چیزی به اسم Auto Resizing هم هست که توی این مقاله براتون توضیح میدم

احتمالا تصویر متحرک درون تب Size Inspector ایکس کد رو حتی واسه یه بار هم که شده دیدید اما شاید متوجه منظورش نشدید

فکر کنید که Constraint ها نیستن. ما باید ویو رو یه عرض و طول بدیم و برای اینکه موقعیتی رو که توی یه گوشی تنظیم میکنیم توی سایر گوشی ها هم هماهنگ باشه باید نسبت به گوشه بالا یا پایین و چپ یا راست مقدار بدیم یعنی یه فاصله رو تعیین کنیم یا اینکه اونو در وسط ویو قرار بدیم

خلاصه باید یه کاری کنیم که توی سایر گوشی ها هم بتونیم جواب بگیریم چون اگه همه ویو ها رو فقط توی یه گوشی کنار هم بچینیم قطعا توی سایر گوشی ها به مشکل میخوریم پس یا باید از چپ و راست بهش یه مارجین بدیم تا عرض انعطاف پذیری متناسب با عرض ویویی که داخل قرار گرفتن رو بگیرن و یا باید از چپ بهش یه مارجین بدیم و به خودش هم یه عرض مناسب بدیم تا بحثش توی محور x به مشکل نخوره.

اینکار رو از توی استوری بورد باید از بخش Size Inspector انجام بدید فقط نکته اش اینه که باید دراپ داون Layout رو روی Translates Mask Into Constraint قرار بدید.

تا Constraint ها حذف بشن و شما با Auto Resizing کار کنید

توجه کنید که هر موقع شما ویویی رو از داخل کد به وجود میارید به صورت دیفالت مقدار Translates Mask Into Constraint برابر True هست یعنی کانسترینت نمیپذیره ولی از توی استوری برد وقتی ویو ها ساخته میشن مقدارشون برابر False هست یعنی باید با کانسترانت اون رو تنظیم کنید.

قطعه کد زیر 

view.autoresizingMask = [.flexibleWidth,.flexibleHeight]

طول و عرض رو متناسب با طول و عرض سوپر ویو قرار میده و اگه شما Frame رو frame والد داده باشید. در اینصورت ویوی والد هرچقدر بزرگ بشه subView اون یعنی همین ویوی مذکور هم هم اندازه با اون بزرگ میشه چون طول و عرض متناسب با سوپر ویوی خودش رو داره

موفق باشید

یاعلی