所以我尝试在我的UIScrolLView中重写drawRect,但是它给了我这个黑色的背景,而不是我为我的UIScrollView指定的背景颜色。为什么会这样呢?如果我删除drawRect代码,那么一切都很好:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
if (shouldDrawVerticalLineForProfile){
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorRef separatorColor = [UIColor colorWithRed:47.0/255.0 green:47.0/255.0
blue:47.0/255.0 alpha:1.0].CGColor;
// Add at bottom
CGPoint startPoint = CGPointMake(60, 0);
CGPoint endPoint = CGPointMake(60, 10000);
CGContextSaveGState(context);
CGContextSetLineCap(context, kCGLineCapSquare);
CGContextSetStrokeColorWithColor(context, separatorColor);
CGContextSetLineWidth(context, 5.0);
CGContextMoveToPoint(context, startPoint.x + 0.5, startPoint.y + 0.5);
CGContextAddLineToPoint(context, endPoint.x + 0.5, endPoint.y + 0.5);
CGContextStrokePath(context);
CGContextRestoreGState(context);
}
}
发布于 2013-04-04 22:13:08
我猜你要找的是:
myScrollViewInstance.opaque = NO
之后,滚动视图的背景应该不再是黑色的。
发布于 2013-10-29 03:38:04
在我的UIScrollView子类中重写drawRect时,我遇到了类似的情况。
只需使用以下命令覆盖:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
}
结果是一个黑色的背景,而不是我想要的清晰的背景。
我发现这是因为在界面生成器中视图背景设置为默认值,并且将其设置为Clear Color
为我解决了这个问题。
我不确定这是否与你的问题有关,但我想我会分享,以防它可能会有所帮助。
发布于 2012-07-04 05:32:10
这应该会有帮助
CGContextSetFillColorWithColor(context, colorBack);
CGContextFillRect(context, self.bounds);
//选择相应的边界和colorBack
https://stackoverflow.com/questions/11318987
复制相似问题