2014-03-03 73 views
1

我正在使用我的UI,完全以编程方式在这里。当我将UISegmentedControl添加到我的UITableViewControllerheader view时,它只是将其自身修复为在UINavigationBar之间没有垂直空间。我如何在UISegmentedControlUINavigationBar之间添加一些填充?如何在UINavigationBar和UISegmentedControl之间添加垂直空间?

+0

修改分段控件的框架没有效果? – KIDdAe

+0

我想知道是否可以以某种方式修改'header view'属性。 –

回答

1

实例化一个UIView对象并将您的UISegmentedControl作为子视图添加。然后将UIView设置为您的表的headerView。您可以通过调整您创建的UIView的框架来添加填充。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 150 /* <-- adjust this value for more or less padding */)]; 

    UISegmentedControl *segControl = [[UISegmentedControl alloc] initWithItems:@[@"One", @"Two", @"Three"]]; 
    segControl.frame = CGRectMake(0, 90, 200, 29); 

    //calculate the middle of the header view 
    CGFloat middleOfView = headerView.bounds.size.width/2; 
    CGFloat middleOfSegControl = segControl.bounds.size.width/2; 
    CGFloat middle = middleOfView - middleOfSegControl; 

    //position the seg control in the middle 
    CGRect frame = segControl.frame; 
    frame.origin.x = middle; 
    segControl.frame = frame; 

    [headerView addSubview:segControl]; 

    self.theTableView.tableHeaderView = headerView; 
} 

当然,你可以更多地混淆框架,让东西定位像你想要的那样。

相关问题