首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在UIScrollView中覆盖drawRect时的黑色背景

在UIScrollView中覆盖drawRect时的黑色背景
EN

Stack Overflow用户
提问于 2012-07-04 04:52:06
回答 4查看 13.1K关注 0票数 20

所以我尝试在我的UIScrolLView中重写drawRect,但是它给了我这个黑色的背景,而不是我为我的UIScrollView指定的背景颜色。为什么会这样呢?如果我删除drawRect代码,那么一切都很好:

代码语言:javascript
复制
- (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);  

    }

}
EN

回答 4

Stack Overflow用户

发布于 2013-04-04 22:13:08

我猜你要找的是:

代码语言:javascript
复制
myScrollViewInstance.opaque = NO

之后,滚动视图的背景应该不再是黑色的。

票数 23
EN

Stack Overflow用户

发布于 2013-10-29 03:38:04

在我的UIScrollView子类中重写drawRect时,我遇到了类似的情况。

只需使用以下命令覆盖:

代码语言:javascript
复制
- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
}

结果是一个黑色的背景,而不是我想要的清晰的背景。

我发现这是因为在界面生成器中视图背景设置为默认值,并且将其设置为Clear Color为我解决了这个问题。

我不确定这是否与你的问题有关,但我想我会分享,以防它可能会有所帮助。

票数 14
EN

Stack Overflow用户

发布于 2012-07-04 05:32:10

这应该会有帮助

代码语言:javascript
复制
CGContextSetFillColorWithColor(context, colorBack);
CGContextFillRect(context, self.bounds); 

//选择相应的边界和colorBack

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11318987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档