我在一个叫SegmentedAnswer,有四个部分观点已经一个UISegmentedControl。 有没有办法改变的段数编程? 非常感谢!
Answer 1:
是的,你可以使用
removeSegmentAtIndex:(NSUInteger) animated:(BOOL)
和
insertSegmentWithTitle:(NSString *) atIndex:(NSUInteger) animated:(BOOL)
Answer 2:
要完全替代部分,你可以使用以下功能:
- (void)setSegments:(NSArray *)segments
{
[segmentController removeAllSegments];
for (NSString *segment in segments) {
[segmentController insertSegmentWithTitle:segment atIndex:segmentController.numberOfSegments animated:NO];
}
}
希望这可以帮助。
Answer 3:
而且这里有一个小雨燕扩展使用新值的阵列,以取代目前的segmentedControl
斯威夫特3
extension UISegmentedControl {
func replaceSegments(segments: Array<String>) {
self.removeAllSegments()
for segment in segments {
self.insertSegmentWithTitle(segment, atIndex: self.numberOfSegments, animated: false)
}
}
}
斯威夫特4
extension UISegmentedControl {
func replaceSegments(segments: Array<String>) {
self.removeAllSegments()
for segment in segments {
self.insertSegment(withTitle: segment, at: self.numberOfSegments, animated: false)
}
}
}
Answer 4:
这里是一个夫特延伸用于与字符串的序列替代区段。 它类似于另一个答案在这里,不同之处它可以与任何顺序使用,这意味着你还可以传递片,套等
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)
}
}
}
Answer 5:
为了完整的缘故(因为我在这里结束了寻找如何实现在厦门国际银行同样的事情)这里是如何做到这一点在厦门国际银行:
Answer 6:
工作对我来说,UIsegmentedControll包含两个部分,我想迅速使用2.2添加一个索引2,使用此代码:
SEG_TipoFiltro.insertSegmentWithTitle("Title", atIndex: 2, animated: false)
文章来源: UISegmentedControl change number of segments programmatically