在UIToolbar上显示UISegmentedControl,本来以为很容易,其实确实挺容易的,只是UIToolbar上所有的items都必须是UIBarButtonItem类型的,因此,需要先把UISegmentedControl转成UIBarButtonItem才能加上去。
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 416, 320, 44)]; UIBarButtonItem *todayItem = [[UIBarButtonItem alloc] initWithTitle:@"今日" style:UIBarButtonItemStyleBordered target:self action:@selector(backToToday)]; UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: [NSArray arrayWithObjects:@"日", @"周", @"月", nil]]; [segmentedControl setFrame:CGRectMake(0, 0, 150, 30)]; [segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar]; segmentedControl.selectedSegmentIndex = 0; [segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged]; UIBarButtonItem *segmentItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; [segmentedControl release]; NSArray *array = [[NSArray alloc] initWithObjects:todayItem, spaceItem, segmentItem, spaceItem, nil]; [todayItem release]; [spaceItem release]; [segmentItem release]; [toolBar setItems:array]; [array release]; [self.view addSubview:toolBar]; [toolBar release];