UIToolbar与异常脂肪UISegmentedControl
问题描述:
我从来没有添加一个分段控制到底部工具栏没有界面生成器。我在导航控制工具栏中添加了相同的分段控件,但没有此问题。我究竟做错了什么?谢谢。UIToolbar与异常脂肪UISegmentedControl
//enable UIToolbar
self.navigationController.toolbarHidden = NO;
//UISegmentedControl
NSArray *segmentedControlItems = [[NSArray alloc] initWithObjects:@"Day One",@"Day Two",nil];
self.segmentedCon = [[UISegmentedControl alloc] initWithItems:segmentedControlItems];
[segmentedControlItems release];
[self.segmentedCon addTarget:self action:@selector(daySegConIndexChange) forControlEvents:UIControlEventValueChanged];
[self.segmentedCon setSelectedSegmentIndex:0];
[self.segmentedCon setSegmentedControlStyle:UISegmentedControlStyleBar];
[self.segmentedCon setWidth:85.0 forSegmentAtIndex:0];
[self.segmentedCon setWidth:85.0 forSegmentAtIndex:1];
[self.segmentedCon setFrame:[self.navigationController.toolbar bounds]];
//bar button items
UIBarButtonItem *flexibaleSpaceBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *segBarBtn = [[UIBarButtonItem alloc] initWithCustomView:self.segmentedCon];
//nsarray of tool bar items
NSArray *toolbarItems = [NSArray arrayWithObjects:flexibaleSpaceBarButton,segBarBtn,flexibaleSpaceBarButton,nil];
[self setToolbarItems:toolbarItems animated:YES];
[segBarBtn release];
答
不幸试试这个..
//UISegmentedControl
NSArray *segmentedControlItems = [[NSArray alloc] initWithObjects:@"Day One",@"Day Two",nil];
self.segmentedCon = [[UISegmentedControl alloc] initWithItems:segmentedControlItems];
[segmentedControlItems release];
[self.segmentedCon addTarget:self action:@selector(daySegConIndexChange) forControlEvents:UIControlEventValueChanged];
[self.segmentedCon setSelectedSegmentIndex:0];
[self.segmentedCon setSegmentedControlStyle:UISegmentedControlStyleBar];
//bar button items
UIBarButtonItem *flexibaleSpaceBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *segBarBtn = [[UIBarButtonItem alloc] initWithCustomView:self.segmentedCon];
答
尝试设置分段控制的框架...
CGRect r = self.segmentedCon.frame;
self.segmentedCon.frame = CGRectMake(r.origin.x, r.origin.y, r.size.width, 30);
+0
相同的结果。 – Airuop 2013-02-13 04:54:21
这工作。谢谢。我是否错过了某些东西,或者只有一条线对我造成这种麻烦? '// this one'' '[self.segCon setFrame:[self.navigationController.toolbar bounds]];' 它是有道理的,它会将分段控件拉伸到工具栏的高度,即设置self.segCon导航到工具栏的边界。每个索引的“setWidth:85.0”都塞进左边。 – Airuop 2013-02-14 03:25:18
你是对的!只是一条线.. – chuthan20 2013-02-14 04:57:56