2012-01-09 8 views
1

写真を表示してできるようにするために、UIScrollViewと埋め込みUIImageViewを使用してios5で簡単なカスタムView Controllerを作成していましたズーミングとパンニングを行います。 これらはすべて、UINavigationControllerに埋め込まれており、TabBarViewControllerUIImageViewが埋め込まれたUIScrollView:zooming/out時にcontentSizeの高さと幅の比率が変更される

は、ここに私のコードの抜粋です:私も両方の属性インスペクタに「左上」で表示 - >モードをデフォルトに設定しました

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.scrollView.delegate = self; 
    self.imageView.image = self.image; 
    [self.imageView sizeToFit]; 
    self.scrollView.zoomScale = 1; 
    self.scrollView.contentSize = self.imageView.image.size; 
    NSLog(@"Original contentSize=(%f,%f), ratio=%f", self.scrollView.contentSize.width, self.scrollView.contentSize.height, self.scrollView.contentSize.height/self.scrollView.contentSize.width); 
} 

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

- (void) scrollViewDidZoom:(UIScrollView *)scrollView 
{ 
    NSLog(@"Changed contentSize=(%f,%f), ratio=%f", self.scrollView.contentSize.width, self.scrollView.contentSize.height, self.scrollView.contentSize.height/self.scrollView.contentSize.width); 
} 

UIScrollViewおよびUIImageView。 Zoom min/maxが0.1/10に設定されています。代議員とアウトレットは結びついています。

今、私は私のプログラムを実行すると、これは私が画像上でズームをピンチするとき、私が得るものです:

2012-01-08 19:58:33.529でTestApp [499:F803]オリジナルcontentSize = (1024.000000,1024.000000)、比率= 1.000000
2012-01-08 19:58:37.599 TestApp [499:f803]変更されたcontentSize =(1014.381775,922.255310)、比率= 0.909180
2012-01-08 19:58: 37.600 TestApp [499:f803]変更されたcontentSize =(1014.381775,922.255310)、比率= 0.909180
2012-01-08 19:58:37.730 TestApp [499:f803]変更されたcontentSize =(1004.763977,913.510986)、比率= 0.909180
2012-01-08 19:58:41.432 TestApp [499:f803]変更されたcontentSize =(974.770325,886.241394)、比率= 0.909180
2012-01-08 19:58:41.433 TestApp [499:f803]変更されたcontentSize = (974.770325,886.241394)、比= 0.909180
2012-01-08 19:58:41.448でTestApp [499:F803]変更contentSize =(954.777161,868.064026)、比= 0.909180

あなたが見ることができるように、ズームするとcontentSizeの高さと幅の比率が変わります。誰がなぜこれが当てはまるのか知っていますか?私はここで何か間違っていますか? scrollViewDidZoomでcontentSizeを手動で設定する必要がありますか?

私はObjective-Cを最近取り上げました。すべての助けをありがとう!

+0

スクロールビューのframe.sizeが正しく設定されていなかったようです(320,367)の代わりに(320,460)でした。それを手動で設定して問題を解決しました。 – zhaomin

答えて

1

私のコメントで述べたように、scrollviewのframe.sizeを(320,367)に設定することでこれを修正しました。ストーリーボードで間違って設定されていました。