私は比較的新しいXcodeです。Objective Cで複数のviewControllerを使用してアプリケーションを作成する過程で、それぞれ単一のUIImageを含む1つのUIScrollViewにズームしてスクロールすることができます。Xcodeの複数のUIViewControllerでviewForZoomingInScrollViewを動作させる方法を教えてください。
このコードは最初の画像(デルマトーム)で機能しますが、2番目の画像(anatomicPlanes)のズームとスクロールを可能にするためにUIViewを調整する方法を理解できません。現在のところ、2番目のイメージは2番目のUIScrollViewに正しくインポートされますが、ズームしようとすると右下にジャンプして静的になります。
UIScrollViewsのサイズはInterface Builderを使用して設定されていますが、問題はありません。
viewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIScrollViewDelegate> {
IBOutlet UIScrollView *dermatomeScrollView;
UIImageView *dermatomesImageView;
IBOutlet UIScrollView *anatomicPlaneScrollView;
UIImageView *anatomicPlanesImageView;
}
@property (strong, nonatomic) IBOutlet UIScrollView *dermatomeScrollView;
@property (strong, nonatomic) IBOutlet UIImageView *dermatomesImageView;
@property (strong, nonatomic) IBOutlet UIImageView *anatomicPlanesImageView;
@property (strong, nonatomic) IBOutlet UIScrollView *anatomicPlaneScrollView;
@end
viewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize dermatomeScrollView, anatomicPlanesImageView, dermatomesImageView, anatomicPlaneScrollView;
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return dermatomesImageView;
}
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *dermatomes = [[UIImageView alloc]
initWithImage:[UIImage imageNamed:@"dermatomes.jpg"]];
self.dermatomesImageView = dermatomes;
dermatomeScrollView. maximumZoomScale = 1.2;
dermatomeScrollView. minimumZoomScale = 0.4;
dermatomeScrollView. delegate = self;
[dermatomeScrollView addSubview:dermatomesImageView];
dermatomeScrollView.zoomScale = 0.6;
UIImageView *planes = [[UIImageView alloc]
initWithImage:[UIImage imageNamed:@"anatomic planes.jpg"]];
self.anatomicPlanesImageView = planes;
anatomicPlaneScrollView. maximumZoomScale = 1.2;
anatomicPlaneScrollView. minimumZoomScale = 0.4;
anatomicPlaneScrollView. delegate = self;
[anatomicPlaneScrollView addSubview:anatomicPlanesImageView];
anatomicPlaneScrollView.zoomScale = 0.6;
}
すべてのヘルプは大歓迎です!
ありがとうございました!これはまさに私が探していたものです(私はそれを見て直感的ですが、私には起こりませんでした)。 – Nate
素晴らしい!それはあなたのために働いてうれしい!私の答えを受け入れることを忘れないでください。 :) –
完了。他の誰かがこの問題に遭遇した場合、「制御が非空白関数の終わりに達する可能性がある」というエラーを防ぐためにelse {return nil;}節を追加してください – Nate