0
在我將CGAffineTransformMakeScale(scale,scale)
(例如scale = 3.0)應用於視圖之後 - 它可以縮放。但是當我試圖以縮放後以編程方式插入一些子視圖時 - 子視圖也縮放3倍 - 我不希望它被縮放。我做錯了什麼?CGAffineTransformMakeScale並插入子視圖
在我將CGAffineTransformMakeScale(scale,scale)
(例如scale = 3.0)應用於視圖之後 - 它可以縮放。但是當我試圖以縮放後以編程方式插入一些子視圖時 - 子視圖也縮放3倍 - 我不希望它被縮放。我做錯了什麼?CGAffineTransformMakeScale並插入子視圖
- (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];
> }
//分辨率:子視圖也將縮小,不亞於上海華盈,因此,可能的解決辦法是重新調整子視圖到原來的大小。例如 如果您已將超級視圖縮放爲2.0,2.0,則根據需要添加具有原始幀的子視圖,然後應用CGAffineTransformMakeScale(0.5,0.5);我認爲它會解決您的問題。 enter code here
//此外,我們應用變換後,原點也會發生變化。我們可以在轉換後將它重置爲(0,0)。
那麼,我試圖調整子視圖的大小,並出現錯誤。重點是我需要用捏手勢放大一些視圖,當用戶釋放手指時 - 我需要在放大視圖內顯示另一個視圖,並且框架比原始小視圖框架大3倍。我得到的想法是,相應地調整幀尺寸以縮小尺寸比仿射變換更好。非常感謝答案:) – Andrew