2

画像をズームインする必要があります。ズームインしたUIScrollView後、で表示されている画像をトリミングしたいと思いますUIImageView。私は次の問題を抱えています:

1)画像がズームされておらず、viewForZoomingInScrollViewメソッドが呼び出されていません。

2)これはトリミングに関する私の2番目の質問です。最初の質問はここにあります。ズーム後にズームした画像をトリミングするにはどうすればよいですか?

私のコードは次のとおりです。

@interface ViewController : UIViewController<UIScrollViewDelegate>
{
     UIImageView *imageView1;
     UIScrollView *scroll;
}
@property(nonatomic,retain) UIImageView *imageView1;

@end

および.mファイル

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    CGRect frame1 = CGRectMake(10,10,190,200);
    self.imageView1.userInteractionEnabled = YES;

    imageView1=[[UIImageView alloc]initWithFrame:frame1];
    imageView1.contentMode = UIViewContentModeScaleToFill;



    imageView1.image= [UIImage imageNamed:@"back.jpeg"];



    CGRect frame = CGRectMake(10,10,190,200);
    scroll = [[UIScrollView alloc] initWithFrame:frame];
    scroll.contentSize = CGSizeMake(240, 260);
    scroll.showsHorizontalScrollIndicator = YES;
    scroll.showsVerticalScrollIndicator = YES;  
    scroll.clipsToBounds = YES;

    scroll.backgroundColor=[UIColor blackColor];
    [scroll addSubview:imageView1];
    [imageView1 release];

    scroll.minimumZoomScale = 0.55; 
    scroll.maximumZoomScale = 2.0;

    scroll.delegate=self;

    [self.view addSubview:scroll];

    self.imageView1.userInteractionEnabled = YES;

}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    NSLog(@"delegate method called");
    return self.imageView1;

}
4

1 に答える 1

5

UIScrollViewDelegateを実装し、コントローラーのViewDidLoadでこの関数を呼び出します。

-(void)setContentSizeForScrollView
{
    scrollView.contentSize = CGSizeMake(YOURIMAGEVIEW.frame.size.width, YOURIMAGEVIEW.frame.size.height);
    scrollView.minimumZoomScale = 1.0;
    scrollView.maximumZoomScale = 5.0;
}

そしてこの関数を書く

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{   
    return YOURIMAGEVIEW;   
}
于 2012-07-04T10:04:47.323 に答える