2010-11-15 1 views
0

У меня есть NSView, который автоматически изменяется в зависимости от размера окна. Я загружаю изображения и отображаю их в NSView, но я не хочу, чтобы NSView пытался «сжать» их, чтобы они соответствовали размеру NSView. Я бы хотел, чтобы изображения загружались в NSView на 100%, а затем изменяли размер окна, чтобы показать больше изображения, а не масштабировать его, чтобы он соответствовал. Возможно, я захочу изменить это позже, чтобы масштабировать и панорамировать.Сделать NSView изменением размера БЕЗ изменения размера изображений, содержащихся в пределах

Вот что я сделал:

-(void)drawRect:(NSRect)rect 
{ 
    NSRect theRect = NSMakeRect((rect.size.width/2)-(([theImage pixelsWide]/2)/2), 
           (rect.size.height/2)-(([theImage pixelsHigh]/2)/2), 
           [theImage pixelsWide]/2, 
           [theImage pixelsHigh]/2); 

    [theImage drawInRect:theRect]; 
} 

ответ

2

Как вы отображения изображений в первую очередь? Либо вы используете NSImageView, либо сами рисуете изображения в своем пользовательском представлении в -drawRect :.

Если вы используете вид изображения, взгляните на его настройки автоматического изменения размера (его геометрию как геометрии изменения родительского вида) и его масштабирование изображения свойства (размер изображения и соотношение как геометрия изменение вида изображения в.

Если пользовательский вид затем нарисует изображение на любой прямоугольник, который вам нравится, а не на все рамки обзора.

+0

Прохладный. Думаю, у меня это есть. Я использую пользовательский вид. Я принял ваше предложение и масштабировал изображение вручную в drawRect. Работает так же, как в Javascript! – Synthetix

Смежные вопросы