<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Just Developer Blog, заметки с тегом: добавление констрейнтов к xib</title>
<link>http://bibobo.ru/tags/dobavlenie-konstreyntov-k-xib/</link>
<description></description>
<generator>E2 (v3254; Aegea)</generator>

<item>
<title>Применение констрейнтов для загруженного Xib в iOS</title>
<guid isPermaLink="true">http://bibobo.ru/all/primenenie-konstreyntov-dlya-zagruzhennogo-xib-v-ios/</guid>
<link>http://bibobo.ru/all/primenenie-konstreyntov-dlya-zagruzhennogo-xib-v-ios/</link>
<comments>http://bibobo.ru/all/primenenie-konstreyntov-dlya-zagruzhennogo-xib-v-ios/</comments>
<description>&lt;p&gt;Очень часто возникает ситуация, когда необходимо переиспользовать часть интерфейса. Для решения этого вопроса в iOS лучше всего подходит вынесение элемента интерфейса в отдельный Xib-файл и последующая его загрузка из кода. Когда мы грузим Xib как ячейку таблицы — он скаллируется автоматически в зависимости от размера ячейки, но если загружать и добавлять его например в произвольный контроллер или View — то могут возникнуть сложности с масштабированием View из Xib при ресайзе родительской View.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;Начиная с iOS 7 Apple дает нам возможность решать вопрос масштабирования при помощи нового инструмента — Auto Layout Constraints. Но при загрузке View из кода ей не проставляются никакие констрейнты автоматически.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;Выход — добавить констрейнты вручную.&lt;/p&gt;
&lt;p&gt;&lt;input id="button_ios_xib_constraints" type="button" onclick="toggle(cut_ios_xib_constraints, button_ios_xib_constraints)" value="Читать дальше" hiddenText="Свернуть" visibleText="Читать дальше"&gt;&lt;/p&gt;
&lt;div id="cut_ios_xib_constraints" style="display: none;" displayOld=""&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Для этого после загрузки View из Xib напишем следующий код:&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code&gt;//запрещаем трансляцию autoresizing mask в констрейнты (поскольку в xib-е она включена по умолчанию)
viewFromXib.TranslatesAutoresizingMaskIntoConstraints = false;

viewController.View.Add(viewFromXib);

//добавляем констрейнты для авторесайза вьюхи из xib-а после того, как мы эту вьюху добавили в иерархию родителя
NSDictionary viewDict = NSDictionary.FromObjectAndKey(viewFromXib, new NSString(&amp;quot;viewFromXib&amp;quot;));
viewController.View.AddConstraints(NSLayoutConstraint.FromVisualFormat(new NSString(&amp;quot;H:|[viewFromXib]|&amp;quot;), 0, null, viewDict));
viewController.View.AddConstraints(NSLayoutConstraint.FromVisualFormat(new NSString(&amp;quot;V:|[viewFromXib]|&amp;quot;), 0, null, viewDict));&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
<pubDate>Tue, 24 Nov 2015 20:44:18 +0300</pubDate>
</item>


</channel>
</rss>