Я относительно новичок в Xcode и в процессе создания приложения в Objective C с несколькими viewControllers каждый с одним UIScrollView, содержащим один UIImage, который можно масштабировать и прокручивать.Как получить viewForZoomingInScrollView для работы с несколькими UIViewControllers в Xcode?
Этот код работает для первого изображения (дерматомы), но я не могу понять, как настроить UIView, чтобы включить масштабирование и прокрутку на втором изображении (anatomicPlanes). В настоящее время второе изображение правильно импортируется во второй 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
Отлично! Рад, что это сработало для вас! Не забудьте принять мой ответ. :) –
Выполнено. И в случае, если кто-то еще сталкивается с этой проблемой, чтобы предотвратить ошибку «элемент управления может дойти до конца не-void», добавьте предложение else {return nil;} – Nate