【问题标题】:Zooming and Rotation an UIImageView缩放和旋转 UIImageView
【发布时间】:2012-03-20 19:30:35
【问题描述】:

我想缩放和旋转 UIImageView。这是我的代码:

@synthesize immagine, velocita, locationManager, direzione;

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{
    double degrees = newHeading.magneticHeading;
    double radians = degrees * M_PI / 180;


    [UIView animateWithDuration:0.05 animations:^{
        self.immagine.transform = CGAffineTransformMakeRotation(-radians);
    }];
}

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

- (void)viewDidLoad
{
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate=self;
    locationManager.desiredAccuracy=kCLLocationAccuracyBestForNavigation;

    [scrollView setDelegate:self];
    [scrollView setContentSize:CGSizeMake(320, 460)];

    immagine = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mappa1"]];
    immagine.frame = CGRectMake(0, 0, 320, 460);
    immagine.contentMode = UIViewContentModeScaleAspectFit;

    [scrollView addSubview:immagine];

    locationManager.headingFilter = kCLHeadingFilterNone; 
    [locationManager startUpdatingHeading];

    [super viewDidLoad];
}

但是当我缩放时,UIImageView 从视图中退出。谁能帮我?提前致谢!

【问题讨论】:

  • 你是否在头文件中设置了滚动视图代理??????

标签: objective-c uiimageview uiimage rotation zooming


【解决方案1】:

我有这样的问题,这两个功能会解决你的问题

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{     
    CGRect originalFrame=recognizer.view.frame;
    CGRect newFrame=CGRectMake(originalFrame.origin.x, originalFrame.origin.y,           originalFrame.size.width*recognizer.scale, originalFrame.size.height*recognizer.scale);
    if (newFrame.size.width>70&&newFrame.size.width<150) 
    {
        recognizer.view.frame=newFrame;
    }  
}

- (void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer 
{
    [self.view bringSubviewToFront:[(UIRotationGestureRecognizer*)recognizer view]];

    if([(UIRotationGestureRecognizer*)recognizer state] == UIGestureRecognizerStateEnded) {     
        lastRotation = 0.0;
        return;
    }

    CGFloat rotation = 0.0 - (lastRotation - [(UIRotationGestureRecognizer*)recognizer rotation]);

    CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)recognizer   view].transform;
    CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);

    [[(UIRotationGestureRecognizer*)recognizer view] setTransform:newTransform];

    lastRotation = [(UIRotationGestureRecognizer*)recognizer rotation];

    // recognizer.view.transform=CGAffineTransformMakeRotation(([recognizer rotation] * 180) / M_PI);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多