如何使UITableViewCellAccessoryDisclosureIndicator以橙色而不是灰色显示?

时间:2010-08-06 13:30:11

标签: iphone

不在tableview单元格中创建任何uibutton(带背景图像的自定义按钮)。 我想把配件指示灯的颜色从灰色变为橙色。我该怎么做......

尽快回复(请仔细回答我,否则我无法理解)......

我在等你回复......

谢谢你...

3 个答案:

答案 0 :(得分:7)

有一个更简单的解决方案:

cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"theimage.png"]] autorelease];

答案 1 :(得分:5)

您需要在其中创建一个带有UIImageView的新UIView,然后将其设置为该单元的附件。所以你需要创建一个像默认配件一样的图像,但是你想要的颜色。

UIView* accessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 24, 50)];
    UIImageView* accessoryViewImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NEWIMAGE.png"]];
    accessoryViewImage.center = CGPointMake(12, 25);
    [accessoryView addSubview:accessoryViewImage];
    [cell setAccessoryView:accessoryView];
    [accessoryViewImage release];
    [accessoryView release];

答案 2 :(得分:0)

对于仍然绊倒这个问题的其他人来说,这是如何以编程方式进行的。

创建一个UIView子类,并使用以下内容覆盖drawRect:

#define PADDING 4.f //give the canvas some padding so the ends and joints of the lines can be drawn with a mitered joint

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor);
    CGContextSetLineWidth(context, 3.f);
    CGContextSetLineJoin(context, kCGLineJoinMiter);

    CGContextMoveToPoint(context, PADDING, PADDING);
    CGContextAddLineToPoint(context, self.frame.size.width - PADDING, self.frame.size.height/2);
    CGContextAddLineToPoint(context, PADDING, self.frame.size.height - PADDING);

    CGContextStrokePath(context);
}

这会绘制一个股票指标箭头。从这里你可以改变颜色,线宽等。

将指标视图添加到您的单元格:

#define ACCESSORY_WIDTH 13.f
#define ACCESSORY_HEIGHT 18.f

cell.accessoryView = [[AccessoryIndicatorView alloc] initWithFrame:CGRectMake(self.frame.size.width - ACCESSORY_WIDTH - CELL_PADDING, self.frame.size.height/2 - ACCESSORY_HEIGHT/2, ACCESSORY_WIDTH, ACCESSORY_HEIGHT)];