【发布时间】:2013-05-10 04:45:46
【问题描述】:
我向导航栏添加了一个 UISegmentedControl。当视图以纵向加载时,它的框架看起来是正确的。但是当它旋转到横向时, UIBarButtonItem 会变大。如果再次旋转到纵向,它仍然是较大的。
一些代码sn-p在这里:
#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;
部分截图如下:
从纵向模式加载。
旋转到横向模式。
旋转回纵向模式。
任何建议将不胜感激。
【问题讨论】:
-
使用自动调整掩码。参考这里UIView autoresizingmask
-
@Ashini 我试过 autoresingmask,效果更差:(.
标签: iphone ios uiview uinavigationcontroller uibarbuttonitem