2009-11-05 11 views

Odpowiedz

14

Czy chcesz użyć narzędzia do tworzenia interfejsu lub zrobić to tylko w kodzie?

W przypadku operacji IB jest bardzo proste, wystarczy przeciągnąć segmentowany element sterujący, aby umieścić go na pasku nawigacyjnym, w którym znajduje się tytuł. Tytuł zostanie zastąpiony przez kontrolę podzieloną na segmenty.

Jeśli chcesz to zrobić w kodzie, zapoznaj się z this section of iPhone reference library. Wygląda na to, że musisz ustawić właściwość titleView elementu nawigacyjnego do kontroli segmentacji, która jest podklasą UIView, więc jest to całkowicie legalne.

+1

czy mogłabyś aktualizacji link, jak to nieaktualne? thx – xon1c

+0

@ xon1c: ok, gotowe – madej

1

w viewDidLoad:

obj-c:

NSArray *segmentTitles = @[ 
    @"segment1", 
    @"segment2", 
]; 

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTitles]; 
segmentedControl.selectedSegmentIndex = 0; 
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
// change the width from 400.0 to something you want if it's needed 
segmentedControl.frame = CGRectMake(0, 0, 400.0f, 30.0f); 
[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged]; 

self.navigationItem.titleView = segmentedControl; 

Swift:

let segmentTitles = [ 
    "segment1", 
    "segment2", 
] 

let segmentedControl = UISegmentedControl(items: segmentTitles) 
segmentedControl.selectedSegmentIndex = 0 
segmentedControl.autoresizingMask = UIViewAutoresizing.FlexibleWidth 
// change the width from 400.0 to something you want if it's needed 
segmentedControl.frame = CGRectMake(0, 0, 400.0, 30.0) 
segmentedControl.addTarget(self, action: "segmentChanged:", forControlEvents: UIControlEvents.ValueChanged) 

self.navigationItem.titleView = segmentedControl 
Powiązane problemy