我有一个带有自定义 UITableCells 的 UITableView。在那些 UITableCells 里面是 UISegmentedControls。我正在尝试仅更改第一个 UISegment 的色调颜色。这可以正常工作,直到通过 dequeueReusableCellWithIdentifier 重用 UITableCell。当向下滚动时重用的 UITableCell 开始出现时,最后一段被染成蓝色而不是第一段。下面是 cellforRowAtIndexPath 中的相关代码:
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CellIdentifier = @"CustomCell";
CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil) {
cell = [[CustomTableCell alloc] init];
}
[cell.segmentedControl setTintColor:GRAY_COLOR];
[[[cell.segmentedControl subviews] objectAtIndex:0] setTintColor:BLUE_COLOR];
...
return (UITableViewCell *) cell;
}
这个 UISegmentedControl 的 UISegmentedControlStyle 是 UISegmentedControlStyleBar,如果这很重要的话。