我有一段代码正在尝试优化。该方法被大量使用,因此任何微小的改进都会大大提高性能。
- (CGRect)calculateRectForItemAtIndex:(NSIndexPath*)path {
//Get the x position stored in an NSMutableArray
double x = [self.sectionXPlacementArray[path.section] doubleValue];
double y = 0;
double height = 0;
//If this is the first row it is a header so treat it different
if (path.row == 0) {
height = self.defaultHeaderHeight;
y = 0;
}
else {
height = self.defaultHeight;
//Calculate the Y placement
y = (path.row-1)*self.defaultHeight+self.defaultHeaderHeight;
}
//Build and return a CGRect
return CGRectMake(x, y, [self.headerSizes[self.headers[path.section]] doubleValue],height);
}
以下是更多信息:
1)看起来像这样headerSizes
:NSMutableDictionary
{
Header1 = 135;
Header2 = 130;
Header3 = 130;
}
2)看起来像这样headers
:NSMutableArray
(
Header1,
Header2,
Header3
)
应用程序中的这些值不会是 Header_。它们将是动态的 NSString,例如“City”或“State”。headerSizes
将包含应用于每个标题的宽度。