旋转UIImageView后滚动和缩放的问题

时间:2011-05-12 12:04:15

标签: iphone uiscrollview uiimageview orientation

我遇到与HERE相同的问题..请帮忙!

  

我有一个UIViewController   支持滚动和缩放   的UIImageView。它很棒。

     

我正在尝试添加对更改的支持   在方向。出于各种原因,我   需要通过旋转才能做到这一点   UIImageView而不是   UIViewController中。

     

我的图像旋转工作,但是   如果用户在图像时捏缩放   旋转,图像的大小和   位置去疯狂(例如,图像   跳到一边,太小了,   似乎不知道范围在哪里   滚动视图的等等。)

     

h文件的核心内容:

@interface ImageViewController : UIViewController <UIScrollViewDelegate>
{
    IBOutlet UIScrollView *scrollView;
    IBOutlet UIImageView *imageView;
}

@property (nonatomic, assign) UIScrollView *scrollView;
@property (nonatomic, assign) UIImageView *imageView;

@end
  

支持缩放:

-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return imageView;
}
  

支持滚动(在设置之后设置)   图片已加载):

[scrollView setContentSize: CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height)];
  

支持旋转图像时   方向改变:

-(void)orientationChanged:(NSNotification *)note
{
    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;

    CGFloat angle = 0;
    switch (orientation) 
    {
        case UIDeviceOrientationLandscapeLeft:
            angle = M_PI/2.0f;
            break;
        case UIDeviceOrientationLandscapeRight:
            angle = -M_PI/2.0f;
            break;
        case UIDeviceOrientationPortraitUpsideDown:
            angle = M_PI;
            break;
        default:
            break;
    }

    self.imageView.transform = CGAffineTransformMakeRotation(angle);
}
  

我怀疑问题是的   scrollView很困惑,因为   由于图像的大小已经改变   轮换,但我无能为力   如何解决它。有任何想法吗? FWIW,   如果我更改,缩放确实有效   方向,但然后改回来   在缩放之前“垂直”。

1 个答案:

答案 0 :(得分:0)

通过从srollView中删除它来重绘图像视图并再次阅读。