Может рисовать только на половине UIView - PullRequest
0 голосов
/ 21 мая 2010

Я пытаюсь нарисовать сетку на UIView на UIScrollView. Ширина UIView составляет около 1000 пикселей. Тем не менее, я могу рисовать только линии о первых 340 пикселях UIView. Может ли кто-нибудь помочь мне в этом?

Функция 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 Ответ

1 голос
/ 21 мая 2010

Я почти уверен, что вы перепутали некоторые переменные.

Вы зацикливаете i от 0 до height, но затем вы используете i в качестве параметра x при создании линий и width в качестве параметра y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...