在UITableView中将UISegmentedControl放在UINavigationBar下面

时间:2014-01-02 01:28:20

标签: ios iphone objective-c uitableview

如何使用UITableView在UINavigationBar下面固定UISegmentedControl?

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"One", @"Two", nil]]; 
[segmentedControl addTarget:self action:@selector(segmentedControlHasChangedValue:)     forControlEvents:UIControlEventValueChanged];
self.tableView.tableHeaderView = segmentedControl;

到目前为止,我已经设置了这个UISegmentedControl,但是它会滚动UITableView内容的其余部分。

2 个答案:

答案 0 :(得分:0)

尝试使用segmentedControl作为节标题视图。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"One", @"Two", nil]];
    [segmentedControl addTarget:self action:@selector(segmentedControlHasChangedValue:)     forControlEvents:UIControlEventValueChanged];
    return segmentedControl ;
}

答案 1 :(得分:0)

尝试以下代码

NSArray *keyWordsList; 

 segmentControl = [[[UISegmentedControl alloc] initWithItems:keyWordsList] autorelease];
    [segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];

    [segmentControl setFrame:CGRectMake(10, 47, 300, 30)];
    [segmentControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    [segmentControl addTarget:self action:@selector(segmentColorAction:) forControlEvents:UIControlEventValueChanged];

    [segmentControl setSelectedSegmentIndex:0];
    segmentControl.tag = 2;
    //[self.navigationController.navigationBar addSubview:segmentControl];
    [self.view addSubview:segmentControl];
    segmentControl.hidden =YES;


    [segmentControl setTag:kTagFirst];
  • kTagFirst提供价值