只能画UIView的一半

时间:2010-05-21 13:21:03

标签: iphone graphics

我正在尝试在UIScrollView上的UIView上绘制网格。 UIView的宽度约为1000像素。但是,我只能画线 关于UIView的前340个像素。任何人都可以帮我吗?

drawGrid函数是

- (void)drawRect:(CGRect)rect
{
NSInteger width = 25 * 5 * 10;
NSInteger height = (10 * 2 + 10) * 12;
NSInteger i;

//Get the CGContext from this view
CGContextRef context = UIGraphicsGetCurrentContext();

// Draw rectangle with a blue stroke color and white fill color
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 1.0, 1.0);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
CGContextSetLineWidth(context, 2.0);
CGContextAddRect(context, CGRectMake(0.0, 0.0, width, height));
CGContextFillPath(context);

// Draw grid with red color
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

// Set the width of the pen mark
CGContextSetLineWidth(context, 0.2);

for (i = 0; i < height; i += 5)
{

    if (i % 25 == 0)
    {
        CGContextSetLineWidth(context, 0.4);

        // Draw a line
        CGContextMoveToPoint(context, i, 0.0);
        CGContextAddLineToPoint(context, i, width);
        CGContextStrokePath(context);

        CGContextSetLineWidth(context, 0.2);
    }
    else
    {
        // Draw a line
        CGContextMoveToPoint(context, i, 0.0);
        CGContextAddLineToPoint(context, i, width);
        CGContextStrokePath(context);       
    }

}

for (i = 0; i < width; i += 5)
{

    if (i % 25 == 0)
    {
        CGContextSetLineWidth(context, 0.4);

        // Draw a line
        CGContextMoveToPoint(context, 0.0, i);
        CGContextAddLineToPoint(context, height, i);
        CGContextStrokePath(context);

        CGContextSetLineWidth(context, 0.2);
    }
    else
    {
        // Draw a line
        CGContextMoveToPoint(context, 0.0, i);
        CGContextAddLineToPoint(context, height, i);
        CGContextStrokePath(context);
    }

}      

}

我也在设置UIScrollView和UIView,如下所示:

- (void)viewDidLoad 
{
[super viewDidLoad];

CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

waveScrollView = [[WaveScrollView alloc] initWithFrame:frame];

CGRect waveframe = CGRectMake(0, 0, 25 * 5 * 10, (10 * 2 + 10) * 12);

EKGWaveView *ekgWaveView = [[EKGWaveView alloc] initWithFrame:waveframe];

waveScrollView.contentSize = CGSizeMake(waveframe.size.width, waveframe.size.height);
waveScrollView.maximumZoomScale = 4.0;
waveScrollView.minimumZoomScale = 0.75;
waveScrollView.clipsToBounds = YES;

waveScrollView.aView = ekgWaveView;

[waveScrollView addSubview:ekgWaveView];

waveScrollView.delegate = self;

[self.view addSubview:waveScrollView];
}

我感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

我很确定你的一些变数已经混淆了。

您正在将i从0循环到height,但在创建行时使用i作为x参数,并使用width作为y参数。