如何在 iPad 的导航栏中调整自定义 UISegmentedControl 的大小?
Posted
技术标签:
【中文标题】如何在 iPad 的导航栏中调整自定义 UISegmentedControl 的大小?【英文标题】:How to resize custom UISegmentedControl inside navigation bar for iPad? 【发布时间】:2013-08-07 09:09:32 【问题描述】:我是 iPhone 应用程序开发的新手。我在导航栏中使用自定义的 uisegmentedcontrol。
此代码适用于 iPhone。
[self.navigationItem setHidesBackButton:YES animated:YES];
profileSegmentControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects: @"seg1", @"seg2", @"seg3", @"seg4", nil]];
[profileSegmentControl addTarget:self action:@selector(seg1Button) forControlEvents:UIControlEventValueChanged];
**profileSegmentControl.frame = CGRectMake(40, 25, 310, 30);**
profileSegmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
profileSegmentControl.momentary = YES;
//[profileSegmentControl sizeToFit];
UIBarButtonItem *profileSegmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:profileSegmentControl];
self.navigationItem.rightBarButtonItem = profileSegmentBarItem;
现在,当我将方向从纵向更改为横向时,如何更改 CGRectMake 中 uisegmentedcontroll 按钮的坐标?在横向时,宽度应为 510 而不是 310。
无法使用 [segmentControlObject sizeToFit],因为我隐藏了导航栏的“返回”导航按钮。这个我试过了,但是segmentedControl的宽度并没有覆盖整个导航栏。
我知道 (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 方法,但您不能在 viewDidLoad 或任何方法下调用此方法。
使用 xcode 4.6
【问题讨论】:
【参考方案1】:Do like this
if( [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait )
FACING = @"PU";
if( [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown )
FACING = @"PD";
if( [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft )
FACING = @"LL";
if( [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight )
FACING = @"LR";
所以在相应的块中设置任何你想要的框架。它可以工作。
【讨论】:
user2582825 :非常感谢您的帮助,它现在在 iphone 上工作正常.. 现在我想在 iPad 上实现同样的东西,它应该只在一个 .ipa 文件中.. 请指导 在这种情况下,您将不得不像这样检查 if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) else 并将您在 iPhone 代码中使用的所有上述四个 if 条件放入每个 if 和否则阻止。它也适用于 iPad ..以上是关于如何在 iPad 的导航栏中调整自定义 UISegmentedControl 的大小?的主要内容,如果未能解决你的问题,请参考以下文章