创建后的iOS分段控件集段

时间:2014-06-10 15:59:06

标签: objective-c uitableview uisegmentedcontrol segments

在自定义的uitableviewcell中,创建行时会创建分段控件。每行都是表单中的问题。根据问题的类型,分段控件可以有不同的答案。在UISegmentedControl引用中,它仅将init方法列为允许一次设置所有段。有没有比使用删除和插入更新细分以获得相关细分更好的方法?

在自定义UITableView单元的init中,它有

_answerSegmented = [[UISegmentedControl alloc] init];
[_answerSegmented addTarget:self action:@selector(answerChanged:) forControlEvents:UIControlEventValueChanged];
_answerSegmented.backgroundColor = [UIColor columnHeaderBackground];
[self addSubview:_answerSegmented];

直到后来才知道这些片段应该是什么

NSMutableArray *answers = [NSMutableArray arrayWithObjects:@"IN", @"OUT", nil];
if (_question.noItem.boolValue) {
    [answers addObject:@"N/O"];
}
if (_question.naItem.boolValue) {
    [answers addObject:@"N/A"];
}
_answerSegmented.segments = answers; // <---- this line gives a compile error

1 个答案:

答案 0 :(得分:4)

不,没有更好的方法。如果所有分段控件具有相同数量的段,则使用该数量的段创建控件。然后,只需使用setTitle:forSegmentAtIndex:一次更改每个细分的标题。

如果号码可以更改,请使用removeAllSegmentsinsertSegmentWithTitle:atIndex:animated:

或者只是创建一个新的分段控件并每次都删除旧的。