2014-02-26 42 views
-1

該應用程序處於橫向模式,我有一個UIButton,點擊將UIImageView附加到AppDelegate的窗口(出於'x'的原因)。我嘗試應用下面的代碼中顯示的轉換,但UIImageView不附加到右上角,但靠近視圖的中心。CGAffineTransformRotate從UIImageView加載中心

-(IBAction)showFullScreenImage:(id)sender { 
    if(_fullImageView==nil) { 
     _fullImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,[UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width)]; 
    } 
    [self.fullImageView setImage:self.fullImage]; 
    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(imageWasTapped:)]; 
    self.fullImageView.userInteractionEnabled = YES; 
    AppDelegate * appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate; 
    [appDelegate.window addSubview:self.fullImageView]; 
    CGAffineTransform t = CGAffineTransformMakeTranslation(0,0); 
    self.fullImageView.transform = CGAffineTransformRotate(t, -M_PI/2); 
    NSLog(@"UIImageView frame:%@",NSStringFromCGRect(self.fullImageView.frame)); 
    [self.fullImageView addGestureRecognizer:gestureRecognizer]; 
} 

-(void)imageWasTapped:(UIGestureRecognizer *)gestureRecognizer { 
    if(gestureRecognizer.state==UIGestureRecognizerStateEnded) { 
     [self.fullImageView removeFromSuperview]; 
    } 
} 

日誌打印出

UIImageView的框架:{{124,-124},{320,568}}

我在做什麼錯在這裏?

+0

如果你註釋掉你的轉換代碼,你會得到正確的框架? –

+0

其實我自己修復了它 – thandasoru

回答

0

我自己修復了。

-(IBAction)showFullScreenImage:(id)sender { 
    if(_fullImageView==nil) { 
     _fullImageView = [[UIImageView alloc]initWithFrame:CGRectZero]; //init with zero 
    } 
    [self.fullImageView setImage:self.fullImage]; 
    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(imageWasTapped:)]; 
    self.fullImageView.userInteractionEnabled = YES; 
    AppDelegate * appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate; 
    [appDelegate.window addSubview:self.fullImageView]; 
    self.fullImageView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI/2); 
    self.fullImageView.frame = [UIScreen mainScreen].bounds; //set it here 
    [self.fullImageView addGestureRecognizer:gestureRecognizer]; 
}