iphone - how to change the UIBarButtonItem size when rotate from the portrait to landscape? -
i add 1 uisegmentedcontrol navigation bar. when view loaded in portrait, frame seems right. when rotate landscape, uibarbuttonitem becomes larger. if rotate portrait again, still remain larger one.
some code snippet here:
#define segment_width 100.0 #define segment_height 32.0 cgrect segmentedcontrolrect = cgrectmake(0, 0, segment_width, segment_height); segmentedcontrol = [[uisegmentedcontrol alloc] initwithframe:segmentedcontrolrect]; segmentedcontrol.momentary = no; segmentedcontrol.segmentedcontrolstyle = uisegmentedcontrolstylebordered; [segmentedcontrol addtarget:self action:@selector(tabbuttonpressed:) forcontrolevents:uicontroleventvaluechanged]; uibarbuttonitem *segmentbarbtn = [[uibarbuttonitem alloc] initwithcustomview:segmentedcontrol]; self.navigationitem.rightbarbuttonitem = segmentbarbtn;
some screenshots follows:
loaded portrait mode.
rotate landscape mode.
rotate portrait mode.
any suggestions appreciated.
do not use bordered style in navigation bar! use uisegmentedcontrolstylebar
. that's it's for.
also, not set size (frame) of segmented control. create alloc-init
, allow use own intrinsic sizing rules (sizetofit
).
Comments
Post a Comment