开发者社区> 问答> 正文

关于iPhone,不知道为啥视图变成黑色的

视图变成了一个黑色的矩形,下面是画视图的代码:

- (void)drawRect:(CGRect)rect
{
    //// General Declarations
    CGContextRef context = UIGraphicsGetCurrentContext();

    //// Color Declarations
    UIColor* color3 = [UIColor colorWithRed: 0.102 green: 0.737 blue: 0.612 alpha: 1];
    UIColor* buttonStrokeColor = [UIColor colorWithRed: 0.925 green: 0.941 blue: 0.945 alpha: 0.004];

    //// Image Declarations
    UIImage* image = [UIImage imageNamed: @"image"];
    UIColor* imagePattern = [UIColor colorWithPatternImage: image];

    //// Group 2
    {
        //// AddButton Drawing
        UIBezierPath* addButtonPath = [UIBezierPath bezierPathWithRect: CGRectMake(280.0, 3.0, 30, 30)];
        [color3 setFill];
        [addButtonPath fill];
        [buttonStrokeColor setStroke];
        addButtonPath.lineWidth = 1;
        [addButtonPath stroke];

        //// Group
        {
            //// Rectangle Drawing
            UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(280.0, 3.0, 30.0, 30.0)];
            CGContextSaveGState(context);
            CGContextSetPatternPhase(context, CGSizeMake(86, 33));
            [imagePattern setFill];
            [rectanglePath fill];
            CGContextRestoreGState(context);
            [buttonStrokeColor setStroke];
            rectanglePath.lineWidth = 1;
            [rectanglePath stroke];
        }
    }

不知道为什么变成黑盒子了?

展开
收起
爵霸 2016-03-19 09:47:57 2075 0
1 条回答
写回答
取消 提交回答
  • 可能是你绘制时超出了视图本身的边框。绘制时不能根据视图的框架画,要根据视图的边界画。

    更新贝塞尔曲线的起始应该是0.0。

    并且在运行时要根据视图的尺寸进行编码。

    2019-07-17 19:07:20
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载