2012-07-24 16 views

Odpowiedz

101

Tak, można użyć

removeSegmentAtIndex:(NSUInteger) animated:(BOOL) 

I

insertSegmentWithTitle:(NSString *) atIndex:(NSUInteger) animated:(BOOL) 
+0

I rozwiązany: [self.SegmentAnswer insertSegmentWithTitle: @ „5” atIndex: 4 animowane: TAK]; [self.SegmentAnswer insertSegmentWithTitle: @ "6" atIndex: 5 – Beppino66

41

Aby wymienić segmentów całkowicie, można użyć następujących funkcji:

- (void)setSegments:(NSArray *)segments 
{ 
    [segmentController removeAllSegments]; 

    for (NSString *segment in segments) { 
     [segmentController insertSegmentWithTitle:segment atIndex:segmentController.numberOfSegments animated:NO]; 
    } 
} 

nadzieję, że to pomaga.

+2

To było idealne do umieszczenia w kategorii UISegmentedControl. Dzięki! – DonnaLea

+1

Możesz użyć [segmentController removeAllSegments] zamiast pętli while. Zobacz dokumentację na https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISegmentedControl_Class/#//apple_ref/occ/instm/UISegmentedControl/removeAllSegments – MCR

+0

Aby dokonać podwójnej kontroli, jest dostępna zarówno dla wersji 7.X i 8.X yeh? – Zorayr

-1

Dla kompletności (i dlatego skończyło się tutaj szukając jak osiągnąć to samo w XI b) oto jak to zrobić w XIb:

enter image description here

7

A oto trochę Swift rozszerzenie zastąpić obecną segmentedControl z tablicy nowych wartości

extension UISegmentedControl { 
    func replaceSegments(segments: Array<String>) { 
     self.removeAllSegments() 
     for segment in segments { 
      self.insertSegmentWithTitle(segment, atIndex: self.numberOfSegments, animated: false) 
     } 
    } 
} 
0

praca dla mnie, UIsegmentedControll zawiera dwa segmenty, chcę dodać jeden w indeksie 2, użyj tego kodu w szybkiej 2.2 użytku:

SEG_TipoFiltro.insertSegmentWithTitle("Title", atIndex: 2, animated: false) 
2

Oto rozszerzenie Swift służące do zastępowania segmentów ciągiem ciągów znaków. Jest podobny do another answer danego tutaj wyjątkiem może być używany z dowolnym sekwencji, dzięki czemu można również przekazać w plastry, zestawy itp

extension UISegmentedControl { 

    /// Replace the current segments with new ones using a given sequence of string. 
    /// - parameter withTitles:  The titles for the new segments. 
    public func replaceSegments<T: Sequence>(withTitles: T) where T.Iterator.Element == String { 
     removeAllSegments() 
     for title in withTitles { 
      insertSegment(withTitle: title, at: numberOfSegments, animated: false) 
     } 
    } 
} 
+0

Czy możesz dodać link do innej odpowiedzi, do której się odwołujesz? Możesz uzyskać bezpośredni link do odpowiedzi, klikając link "udostępnij" znajdujący się pod nim. –

+0

There. Dodano to teraz. Dzięki za wskazówkę. –

Powiązane problemy