2012-07-24 34 views

回答

101

是的,你可以使用

removeSegmentAtIndex:(NSUInteger) animated:(BOOL) 

而且

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

我解決了: [self.SegmentAnswer insertSegmentWithTitle:@「5」 atIndex: 4動畫:是]; [self.SegmentAnswer insertSegmentWithTitle:@「6」atIndex:5 – Beppino66 2012-07-24 20:54:53

41

完全取代段,你可以使用下面的功能:

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

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

希望這有助於。

+2

這非常適合放入UISegmentedControl類別。謝謝! – DonnaLea 2014-05-12 19:35:14

+1

您可以使用[segmentController removeAllSegments]而不是while循環。請參閱https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISegmentedControl_Class/#//apple_ref/occ/instm/UISegmentedControl/removeAllSegments上的文檔 – MCR 2015-05-27 16:29:07

+0

要進行仔細檢查,它可用於7.X和8.X是嗎? – Zorayr 2015-05-27 17:21:39

-1

爲了完整的緣故(因爲我在這裏結束了尋找如何實現在廈門國際銀行同樣的事情)這裏是如何做到這一點在廈門國際銀行:

enter image description here

7

而且這裏有一個小雨燕擴展使用新值

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

對我工作的陣列取代現有的segmentedControl,UIsegmentedControll包含兩個部分,我想迅速使用2.2添加一個索引2,使用此代碼:

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

這是一個用字符串序列替換段的Swift擴展。它類似於這裏給出another answer,除了它可以與任何順序使用,這意味着你還可以傳遞片,套等

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

你可以添加一個鏈接到你指的另一個答案嗎?你可以通過點擊它下面的「分享」鏈接來獲得答案。 – 2017-04-06 19:17:16

+0

那裏。現在加入。謝謝你的提示。 – 2017-04-06 20:14:13