不在tableview单元格中创建任何uibutton(带背景图像的自定义按钮)。 我想把配件指示灯的颜色从灰色变为橙色。我该怎么做......
尽快回复(请仔细回答我,否则我无法理解)......
我在等你回复......
谢谢你...
答案 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)];