ios - Auto layout issue with dynamically loaded XIB -


i have issue auto layout , particular ui flow trying build.

essentially, have following:

  • a storyboard
  • a xib called updateyou.xib
  • a xib called updatefilter.xib

within storyboard scene uiviewcontroller called updateviewcontroller in turn has uisegmentedcontrol 2 options , scrollview.

the general premise when uisegmentedcontrol in option1 loads updateyou.xib in scrollview. constrained width of parent view , expanded vertically required.

however, when option2 of uisegmentedcontrol selected updatefilter xib loaded not constrained width of parent view.

below print out of constraints (the first *** separated log correctly laid out view):

2015-06-20 08:39:27.514 [42981:1543261] ************************************************* constraint: <nslayoutconstraint:0x7fc691d7eeb0 uiview:0x7fc691d7d720.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7ef00 uiview:0x7fc691d7d720.top == uiview:0x7fc691d7d5f0.topmargin> constraint: <nslayoutconstraint:0x7fc691d7ef50 uiview:0x7fc691d7d5f0.trailingmargin == uiview:0x7fc691d7d720.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7efa0 uiview:0x7fc691d7d5f0.trailingmargin == uiview:0x7fc691d7d900.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7eff0 v:[_uilayoutguide:0x7fc691d7e4a0]-(0)-[uiview:0x7fc691d7d900]> constraint: <nslayoutconstraint:0x7fc691d7f040 uiview:0x7fc691d7d900.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7f090 uisegmentedcontrol:0x7fc691d018b0.trailing == uiview:0x7fc691d7d5f0.trailingmargin> constraint: <nslayoutconstraint:0x7fc691d7f0e0 v:[uiview:0x7fc691d7d900]-(8)-[uisegmentedcontrol:0x7fc691d018b0]> constraint: <nslayoutconstraint:0x7fc691d7f130 uisegmentedcontrol:0x7fc691d018b0.leading == uiview:0x7fc691d7d5f0.leadingmargin> constraint: <nslayoutconstraint:0x7fc691d7f180 uiview:0x7fc691d7d5f0.trailingmargin == uiscrollview:0x7fc691d7bbd0.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7f1d0 uiscrollview:0x7fc691d7bbd0.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7f220 v:[uisegmentedcontrol:0x7fc691d018b0]-(8)-[uiscrollview:0x7fc691d7bbd0]> constraint: <nslayoutconstraint:0x7fc691d7f270 v:[uiscrollview:0x7fc691d7bbd0]-(0)-[_uilayoutguide:0x7fc691d7e9f0]> constraint: <_uilayoutsupportconstraint:0x7fc691d51190 v:[_uilayoutguide:0x7fc691d7e4a0(0)]> constraint: <_uilayoutsupportconstraint:0x7fc691d55c60 v:|-(0)-[_uilayoutguide:0x7fc691d7e4a0]   (names: '|':uiview:0x7fc691d7d5f0 )> constraint: <_uilayoutsupportconstraint:0x7fc691d4f9a0 v:[_uilayoutguide:0x7fc691d7e9f0(0)]> constraint: <_uilayoutsupportconstraint:0x7fc691d66220 _uilayoutguide:0x7fc691d7e9f0.bottom == uiview:0x7fc691d7d5f0.bottom> *************************************************  ************************************************* constraint: <nslayoutconstraint:0x7fc691d7eeb0 uiview:0x7fc691d7d720.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7ef00 uiview:0x7fc691d7d720.top == uiview:0x7fc691d7d5f0.topmargin> constraint: <nslayoutconstraint:0x7fc691d7ef50 uiview:0x7fc691d7d5f0.trailingmargin == uiview:0x7fc691d7d720.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7efa0 uiview:0x7fc691d7d5f0.trailingmargin == uiview:0x7fc691d7d900.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7eff0 v:[_uilayoutguide:0x7fc691d7e4a0]-(0)-[uiview:0x7fc691d7d900]> constraint: <nslayoutconstraint:0x7fc691d7f040 uiview:0x7fc691d7d900.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7f090 uisegmentedcontrol:0x7fc691d018b0.trailing == uiview:0x7fc691d7d5f0.trailingmargin> constraint: <nslayoutconstraint:0x7fc691d7f0e0 v:[uiview:0x7fc691d7d900]-(8)-[uisegmentedcontrol:0x7fc691d018b0]> constraint: <nslayoutconstraint:0x7fc691d7f130 uisegmentedcontrol:0x7fc691d018b0.leading == uiview:0x7fc691d7d5f0.leadingmargin> constraint: <nslayoutconstraint:0x7fc691d7f180 uiview:0x7fc691d7d5f0.trailingmargin == uiscrollview:0x7fc691d7bbd0.trailing - 16> constraint: <nslayoutconstraint:0x7fc691d7f1d0 uiscrollview:0x7fc691d7bbd0.leading == uiview:0x7fc691d7d5f0.leadingmargin - 16> constraint: <nslayoutconstraint:0x7fc691d7f220 v:[uisegmentedcontrol:0x7fc691d018b0]-(8)-[uiscrollview:0x7fc691d7bbd0]> constraint: <nslayoutconstraint:0x7fc691d7f270 v:[uiscrollview:0x7fc691d7bbd0]-(0)-[_uilayoutguide:0x7fc691d7e9f0]> constraint: <_uilayoutsupportconstraint:0x7fc691d51190 v:[_uilayoutguide:0x7fc691d7e4a0(20)]> constraint: <_uilayoutsupportconstraint:0x7fc691d55c60 v:|-(0)-[_uilayoutguide:0x7fc691d7e4a0]   (names: '|':uiview:0x7fc691d7d5f0 )> constraint: <_uilayoutsupportconstraint:0x7fc691d4f9a0 v:[_uilayoutguide:0x7fc691d7e9f0(0)]> constraint: <_uilayoutsupportconstraint:0x7fc691d66220 _uilayoutguide:0x7fc691d7e9f0.bottom == uiview:0x7fc691d7d5f0.bottom> constraint: <nslayoutconstraint:0x7fc69402d9e0 'uiview-encapsulated-layout-width' h:[uiview:0x7fc691d7d5f0(375)]> constraint: <nslayoutconstraint:0x7fc69402ed70 'uiview-encapsulated-layout-height' v:[uiview:0x7fc691d7d5f0(667)]> constraint: <nsautoresizingmasklayoutconstraint:0x7fc69402db80 h=-&- v=-&- 'uiview-encapsulated-layout-left' h:|-(0)-[uiview:0x7fc691d7d5f0]   (names: '|':uiview:0x7fc691c40020 )> constraint: <nsautoresizingmasklayoutconstraint:0x7fc69402d4e0 h=-&- v=-&- 'uiview-encapsulated-layout-top' v:|-(0)-[uiview:0x7fc691d7d5f0]   (names: '|':uiview:0x7fc691c40020 )> ************************************************* 

i can see issue additional constraints included in second view know not why there or how have got there. have checked constraints in ib , not included.

i have tried set translatesautoresizingmaskintoconstraints no on offending view makes layout worse!

the xibs added through following code:

- (ibaction)onsegmentedcontrolvaluechanged:(id)sender {     switch (self.segmentedcontrol.selectedsegmentindex) {     case 0:         if (!updateprofileyou) {             updateprofileyou = [[[nsbundle mainbundle] loadnibnamed:@"updateprofileyou" owner:self options:nil] lastobject];         }         [self.scrollview.subviews[0] removefromsuperview];         [self.scrollview addsubview:updateprofileyou];         [self.scrollview setcontentsize:cgsizemake(320, updateprofileyou.frame.size.height)];         break;     case 1:         if (!updateprofilefilters) {             updateprofilefilters = [[[nsbundle mainbundle] loadnibnamed:@"updateprofilefilters" owner:self options:nil] lastobject];         }         [self.scrollview.subviews[0] removefromsuperview];         [self.scrollview addsubview:updateprofilefilters];         [self.scrollview setcontentsize:cgsizemake(320, updateprofilefilters.frame.size.height)];         break;     default:         break;     } } 

thanks


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -