【发布时间】:2011-09-16 15:59:36
【问题描述】:
我正在使用ABTableViewCell from atebits 自定义 UITableViewCell。
所以在我的子类中,我将重写 drawContentView: 来进行一些绘图。
我正在绘制一个带有阴影的圆角矩形,但由于阴影,滚动速度非常慢。如果我删除它,滚动就可以了。
这是我的代码:
/// Fill cell color
CGContextSetFillColorWithColor(context, __cgColorBCBEC1);
CGContextFillRects(context, &rect, 1);
/// Rounded rect
CGFloat radius = 5.0f;
__rrect.size.height = rect.size.height - 10.0f; // __rect represent my rounded CGRect
CGContextMoveToPoint(context, __rrect.origin.x, __rrect.origin.y + radius);
CGContextAddLineToPoint(context, __rrect.origin.x, __rrect.origin.y + __rrect.size.height - radius);
CGContextAddArc(context, __rrect.origin.x + radius, __rrect.origin.y + __rrect.size.height - radius, radius, M_PI_4, M_PI_2, 1);
CGContextAddLineToPoint(context, __rrect.origin.x + __rrect.size.width - radius, __rrect.origin.y + __rrect.size.height);
CGContextAddArc(context, __rrect.origin.x + __rrect.size.width - radius, __rrect.origin.y + __rrect.size.height - radius, radius, M_PI_2, 0.0f, 1);
CGContextAddLineToPoint(context, __rrect.origin.x + __rrect.size.width, __rrect.origin.y + radius);
CGContextAddArc(context, __rrect.origin.x + __rrect.size.width - radius, __rrect.origin.y + radius, radius, 0.0f, -M_PI_2, 1);
CGContextAddLineToPoint(context, __rrect.origin.x + radius, __rrect.origin.y);
CGContextAddArc(context, __rrect.origin.x + radius, __rrect.origin.y + radius, radius, -M_PI_2, M_PI, 1);
/// Set the shadow
CGContextSetFillColorWithColor(context, __cgGreyColorF5);
CGContextSaveGState(context);
CGContextSetShadowWithColor(context, __zeroSize, 5.0f, __cgGreyColor33);
CGContextFillPath(context);
CGContextRestoreGState(context);
/// Draw some text and a single line
我可以做些什么来让阴影有良好的滚动性能?
【问题讨论】:
标签: ios performance uitableview core-graphics shadow