2012-07-24 72 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