UIView中的画线不支持多种屏幕尺寸?

时间:2016-04-12 13:30:01

标签: cocoa-touch uiview core-graphics

我想基于UIView的高度在UIView中绘制线条。 (即)线高应该等于UIView的高度。为此,我使用以下代码。

- (void)testDraw :(void(^)(UIImage *image, UIImage *selectedImage))done
    {
        CGSize imageSize = CGSizeMake(1000, self.bounds.size.height);
        //Begin the animation by checking the screen is retina / ordinary
        if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
            UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0f);
        else
            UIGraphicsBeginImageContext(imageSize);

        CGContextRef context = UIGraphicsGetCurrentContext();

        for (NSInteger intSample=0; intSample < 1000; intSample++) {

            if(intSample % self.samplesPerSecond == 0){
                //draw separator line
                [self drawLine:context fromPoint:CGPointMake(intSample, 0) toPoint:CGPointMake(intSample, self.frame.size.height) color:self.lineColor lineWidth:2.0];
            }
        }
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        CGRect drawRect = CGRectMake(0, 0, image.size.width, self.frame.size.height);
        [self.progressColor set];
        UIRectFillUsingBlendMode(drawRect, kCGBlendModeSourceAtop);
        UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        done(image, tintedImage);
}

//Draw the line based on the value received
- (void) drawLine:(CGContextRef) context fromPoint:(CGPoint) fromPoint toPoint:(CGPoint) toPoint color:(UIColor*) color lineWidth:(float) lineWidth{

    CGContextBeginPath(context);
    //add the lines with sizes that u want
    CGContextSetAlpha(context,1.0);
    CGContextSetLineWidth(context, lineWidth);
    CGContextSetStrokeColorWithColor(context, [color CGColor]);
    CGContextMoveToPoint(context, fromPoint.x, fromPoint.y);
    CGContextAddLineToPoint(context, toPoint.x, toPoint.y);
    CGContextStrokePath(context);


}

当我执行上面的代码时,它在3.5英寸显示器上工作正常,它工作正常。但是当我在4英寸中运行相同的代码时,基于UIView的行高不会增加。这些线的工作方式与自动布局不同。

提前致谢,任何人都可以提出解决此问题的建议。

0 个答案:

没有答案