私は、iPhone上の写真アプリによく似たアプリを設定しようとしています。私が実行している問題は、最小のズームスケールを設定し、現在のズームスケールが現在の最小値よりも小さい場合は強制的に最小のスケールに戻す良い方法を見つけられないことです。ここでオリエンテーション変更の最小ズームスケールを変更するにはどうすればよいですか?
私は現在、私のscrollviewを設定しています方法です...
- (void)viewDidLoad{
NSData * imageData = [[[NSData alloc] autorelease] initWithContentsOfURL: [NSURL URLWithString: imageURL]];
UIImage *babe = [UIImage imageWithData:imageData];
babeView = [[UIImageView alloc]
initWithImage:babe];
[self.view addSubview:babeView];
UIBabeScrollView* myScrollview = (UIBabeScrollView*)self.view;
myScrollview.frame = [UIScreen mainScreen].applicationFrame;
[myScrollview setContentSize:[babe size]];
[myScrollview setMaximumZoomScale:2.0];
// Work out a nice minimum zoom for the image - if it's smaller than the ScrollView then 1.0x zoom otherwise a scaled down zoom so it fits in the ScrollView entirely when zoomed out
CGSize imageSize = babeView.image.size;
CGSize scrollSize = myScrollview.frame.size;
CGFloat widthRatio = scrollSize.width/imageSize.width;
CGFloat heightRatio = scrollSize.height/imageSize.height;
CGFloat minimumZoom = MIN(1.0, (widthRatio > heightRatio) ? heightRatio : widthRatio);
[myScrollview setMinimumZoomScale:minimumZoom];
[myScrollview setZoomScale:minimumZoom];
マイUIBabeScrollViewは、それはそう...
- (void)layoutSubviews {
[super layoutSubviews];
// center the image as it becomes smaller than the size of the screen
CGSize boundsSize = self.bounds.size;
CGRect frameToCenter = ((UIImageView*)[self.subviews objectAtIndex:0]).frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width)
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width)/2;
else
frameToCenter.origin.x = 0;
// center vertically
if (frameToCenter.size.height < boundsSize.height)
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height)/2;
else
frameToCenter.origin.y = 0;
((UIImageView*)[self.subviews objectAtIndex:0]).frame = frameToCenter;
}
ようlayoutSubviewsだオーバーロードするサブクラス化され私が行っている影響は、画像が常に中央に配置され、画像の幅や高さ以上にズームアウトできないということです。
これは今ではポートレートモードでは問題ありませんが、風景に切り替えるとズームのスケールが正しくありません。
私はまだ新生iPhoneアプリの開発者ですので、助けていただければ幸いです。あなたのビューコントローラで
これはトリックを行い、本当に自分自身を実現していたはずのものです。 –
喜んで助けてください。 :) – Altealice