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