Я понимаю, что вы используете 25 подпредставлений для каждого бара.Вы уже можете оптимизировать это и сделать каждый бар одним UIView
.Вы можете создать собственный подкласс UIView
, который мы будем называть BarView
, и переопределить его метод drawRect
, чтобы нарисовать 25 квадратов бара.
Редактировать
Предполагается, что у вас есть массив bars
, который содержит 25 баров (типа Bar
).Каждый столбец содержит массив squares
из 25 квадратов (типа Square
).
- (void)drawRect:(CGRect)rect
{
CGContextRef *ctx = UIGraphicsGetCurrentContext();
for (Bar *bar in self.bars) {
for (Square *square in bar.squares) {
CGContextSetFillColorWithColor(ctx, square.color.CGColor);
CGContextFillRect(ctx, square.frame);
}
}
}
Bar
и Square
не подкласс UIView
, они простые NSObject
s.
Наконец, обратите внимание, что этот код является лишь примером и что есть возможности для дальнейшего повышения производительности.