对UISegmentedControl进行子类化以在每个段上添加彩色UIView

时间:2012-04-30 22:19:57

标签: iphone uiview uisegmentedcontrol

我想在UISegmentedControl中添加一个小的彩色指示器(只是一个彩色矩形)。我以为我可以继承UISegmentedControl并在initWithFrame中添加该标志,如下所示:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        UIColor *first = [UIColor blueColor];
        UIColor *second = [UIColor orangeColor];

        UIView *firstView = [[UIView alloc] initWithFrame:CGRectMake(self.bounds.origin.x + 5, self.bounds.origin.y + 5, 10, self.bounds.size.height)];
        firstView.backgroundColor = first;

        [self addSubview:firstView];
    }
    return self;
}

当我实例化一个CustomSegmentedControl对象时,我只得到蓝色矩形,但没有其他原始的segmentedcontrol绘图逻辑。有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

水晶,

是否可以将图像用于彩色矩形?如果是这样,你可以使用

- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment

添加图片。像

这样的东西
[segmentedControl setImage:[UIImage imageNamed:@"blueRectangle"] forSegmentAtIndex:0];

希望这有帮助!