我想使用CGRect而不是UIImageView 绘制一个三角形,并将其作为子视图添加到某些特定表格单元格的右上角,类似于在WWDC应用程序上完成的操作。
欢迎任何建议。 :)
答案 0 :(得分:8)
一种简单的方法是让不同的UIImageView包含彩色三角形,然后根据您设置的某些值/首选项选择要显示的不同图像。 取自这里:Drawing a triangle in UIView
您需要做一些数学计算正确的点,但这是绘制三角形的一般方法。您可以创建自己的UIView子类(称之为CornerTriangle),然后将其添加到单元格,同时设置其颜色以满足您的需要。
-(void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextBeginPath(ctx);
CGContextMoveToPoint (ctx, CGRectGetMinX(rect), CGRectGetMinY(rect)); // top left
CGContextAddLineToPoint(ctx, CGRectGetMaxX(rect), CGRectGetMidY(rect)); // mid right
CGContextAddLineToPoint(ctx, CGRectGetMinX(rect), CGRectGetMaxY(rect)); // bottom left
CGContextClosePath(ctx);
CGContextSetRGBFillColor(ctx, 1, 1, 0, 1);
CGContextFillPath(ctx);
}
答案 1 :(得分:0)
将以下方法添加到您的UiTableviewCell类。这是您正在寻找的正确效果:
-(void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextBeginPath(ctx);
CGContextMoveToPoint (ctx, CGRectGetMaxX(rect), CGRectGetMidY(rect));
CGContextAddLineToPoint(ctx, CGRectGetMaxX(rect), CGRectGetMinY(rect));
CGContextAddLineToPoint(ctx, CGRectGetMaxX(rect)-25, CGRectGetMinY(rect));
CGContextClosePath(ctx);
CGContextSetRGBFillColor(ctx, 1, 1, 0, 1);
CGContextFillPath(ctx);
}