CGAffineTransformMakeScale и вставка подпредставлений - PullRequest
0 голосов
/ 29 июня 2011

После того, как я применил CGAffineTransformMakeScale(scale,scale) (например, масштаб = 3,0) к представлению - оно масштабируется нормально.Но когда я пытаюсь программно вставить некоторое подпредставление после масштабирования - подпредставление также масштабируется в 3 раза - и я не хочу, чтобы оно масштабировалось.Что я делаю не так?

1 Ответ

0 голосов
/ 29 июня 2011
    - (void)viewDidLoad {
    [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:1.5];
        // other animations goes here
        //imageView is a global variable of UIImageView with frame         
           //CGrectMake(0,0,160,240);
             imageView.transform =CGAffineTransformMakeScale(2.0,2.0);//CGAffineTransformMakeRotation(M_PI*0.5);
        // other animations goes here
        [UIView commitAnimations];
        [super viewDidLoad];
        NSLog(@"THe imageView rect is %@",NSStringFromCGRect(imageView.frame));
        [self performSelector:@selector(addImage) withObject:nil afterDelay:1.5];


}

// добавляем подпредставление по мере необходимости.

> -(void)addImage {
>    
> 
>  CGRect rect=imageView.frame;
>       rect.origin.x=0;
>       rect.origin.y=0;
>       [imageView setFrame:rect];
>       UIImageView *imageViewTwo=[[UIImageView alloc] initWithImage:
> [UIImage=imageNamed:@"photo-4.PNG"]];
>       [imageViewTwo setFrame:CGRectMake(0, 0, 160,
> 240)];//it will be scaled two //times
> as its superview 
>       [imageView addSubview:imageViewTwo];
>       NSLog(@"the frame of the subv iew is
> %@",NSStringFromCGRect(imageViewTwo.frame));
>       [imageViewTwo release];
>        }

// Разрешение: Subview также будет масштабироваться так же, как и superview, поэтому возможным решением будет изменение масштаба subView до его первоначального размера. Например если вы масштабировали суперпредставление до 2.0,2.0, добавьте вспомогательное представление с оригинальным кадром, как вам нужно, затем примените CGAffineTransformMakeScale (0.5,0.5); я думаю, что это решит вашу проблему. enter code here // Также, после того, как мы применяем преобразование, источник также изменяется. Мы можем сбросить его до (0,0) после преобразования.

...