1

여기서는 프로그래밍 방식으로 UI를 사용하고 있습니다. 내 UITableViewControllerheader viewUISegmentedControl을 추가하면 UINavigationBar 사이에 수직 간격없이 그 자체가 수정됩니다. UISegmentedControlUINavigationBar 사이에 패딩을 추가하려면 어떻게해야합니까?UINavigationBar와 UISegmentedControl 사이에 세로 간격을 추가하는 방법은 무엇입니까?

+0

분할 된 컨트롤의 프레임을 수정해도 아무 효과가 없습니까? – KIDdAe

+0

'header view' 속성을 어떻게 든 수정할 수 있는지 궁금합니다. –

답변

1

UIView 개체를 인스턴스화하고 UISegmentedControl을 하위보기로 추가하십시오. 그런 다음 표의 headerView으로 UIView을 설정하십시오. 자신이 만든 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; 
} 

물론 원하는대로 위치를 지정하려면 프레임을 더 혼란스럽게 할 수 있습니다.