Описание: пользовательская ячейка электронной таблицы, унаследованная от класса NuGridCellWithSparkline.
#import <NuGridView/NuGridView.h> #import <NuGridView/NuGridCellWithSparkline.h> #import <NuGridView/NuGridSparklineHelper.h> @interface SparklineCell : NuGridCellWithSparkline @property bool isUseSparkline; // Признак использования ячейки со спарклайн-графиком @end
#import "SparklineCell.h"
@implementation SparklineCell
@synthesize isUseSparkline = _isUseSparkline;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
- (void)drawRect:(CGRect)rect
{
if ([self isUseSparkline]) {
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect frame = self.bounds;
// Определяем данные спарклайна
NuGridSparklineData *sparklineData = [[NuGridSparklineData new] autorelease];
[sparklineData setValues:[NSArray arrayWithObjects:[NSNumber numberWithInt:0],
[NSNumber numberWithInt:0],
[NSNumber numberWithInt:1],
[NSNumber numberWithInt:4],
[NSNumber numberWithInt:4],
[NSNumber numberWithInt:3],
[NSNumber numberWithInt:8],
[NSNumber numberWithInt:8],
[NSNumber numberWithInt:5],
nil]];
// Устанавливаем минимальное и максимальное значение данных
[sparklineData setMinValue:0];
[sparklineData setMaxValue:10];
// Устанавливаем индексы точек с пиковыми значениями данных
[sparklineData setMaxPeakElementIndex:3];
[sparklineData setMinPeakElementIndex:1];
// Создаём объект, используемый для построения спарклайн-графика
NuGridSparklineHelper *helper = [NuGridSparklineHelper sparklineHelper];
CGPathRef pathRef = [helper createPathWith:sparklineData forSize:frame.size];
CGPathRef maxPeakRef = [helper createPathForMaxPeakIn:sparklineData forSize:frame.size];
CGPathRef minPeakRef = [helper createPathForMinPeakIn:sparklineData forSize:frame.size];
// Устанавливаем цвет графика
[[UIColor orangeColor] set];
// Рисуем графики и пиковые значения
CGContextAddPath(context, pathRef);
CGContextAddPath(context, maxPeakRef);
CGContextAddPath(context, minPeakRef);
CGContextFillPath(context);
CGPathRelease(pathRef);
}
[super drawRect:rect];
}
@end
См. также: