Alias ​​+ основная графика на дисплее сетчатки - PullRequest
0 голосов
/ 04 января 2012

Я хотел использовать возможность рисования псевдонимов основной графики с возможностью масштабирования, чтобы пиксели были очень четкими при 1600% или выше, и все отлично работает в ipad 1 (без отображения сетчатки)

, когда яна iphone4S / 4 работает один и тот же код, я не вижу, чтобы рисунок псевдонима был

следуйте инструкциям из этого поста CoreGraphics для отображения сетчатки , но изображение по-прежнему не "псевдоним"

вот крышка экрана моего вопроса - http://farm8.staticflickr.com/7161/6634020573_19d8b3549f_o.jpg

вот как я делаю снимок экрана ниже - (создайте подкласс UIView и поместите код рисования в drawRect:)

- (void)drawRect:(CGRect)rect
{
    //[self setNeedsDisplay];
    // Drawing code
    CGContextRef context = UIGraphicsGetCurrentContext();
    //
    CGContextSetLineWidth(context, 1.0);
    CGColorSpaceRef cs=CGColorSpaceCreateDeviceRGB();
    float cc[]={1.0,0.0,0.0,1.0};
    CGContextSetStrokeColorWithColor(context,CGColorCreate(cs, cc));
    CGContextSetShouldAntialias(context, FALSE);
    CGContextSetAllowsAntialiasing(context, FALSE);
    //
    CGContextMoveToPoint(context,10,0);
    CGContextAddLineToPoint(context, 266,256);
    CGContextStrokePath(context);

    CGContextSetShouldAntialias(context, TRUE);
    CGContextSetAllowsAntialiasing(context, TRUE);
    //
    CGContextMoveToPoint(context,-10,0);
    CGContextAddLineToPoint(context, 246,256);
    CGContextStrokePath(context);
}

и увеличьте масштаб двойным нажатием

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *t=[touches anyObject];
    if([t tapCount]==2) {
        paper *p=[paperStack objectAtIndex:0];
        CGAffineTransform transform = p.transform;
        p.transform = CGAffineTransformScale(transform, 16.0f, 16.0f);

    }
}

Любая помощь / советы будут высоко оценены, спасибо заранее!

лучше всего, Kitdastudio

1 Ответ

0 голосов
/ 16 января 2012

чтобы сетчатка отображала пиксель SHARP CRISP

мне нужно отказаться от

CGContextMoveToPoint(context,10,0);
CGContextAddLineToPoint(context, 266,256);

вместо этого мне нужно использовать цикл для добавления прямоугольников (размером 1x1 каждый) вдоль линии

, и он будет давать пиксель SHARP CRISP как на дисплее сетчатки, так и на дисплее более старого поколения 1x

...