UIScrollView с изображением - PullRequest
       5

UIScrollView с изображением

1 голос
/ 14 марта 2012

Можно ли использовать UIScrollView, чтобы увидеть изображение длиной около 800 пикселей?Я пытался использовать UIScrollView и UIImageView, но это не прокрутка.Кто-нибудь может помочь, пожалуйста?

Ответы [ 4 ]

0 голосов
/ 26 июля 2012

Если это не панорамирование, это означает, что вы забыли установить свойство contentSize. У меня есть учебник на моем веб-сайте, который показывает, как встроить UIImageView в UIScrollView и настроить его для панорамирования и масштабирования. Он включает в себя полный загружаемый исходный код. См. Панорамирование и масштабирование с помощью UIScrollView

.
0 голосов
/ 14 марта 2012

Использование:

UIScrollView *yourScrollview = [[UIScrollView alloc] initWithFrame:(CGRect){{0,0}, {320,480}}];

UIImageView *yourImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourImageHere.png"]];
yourImageView.frame = yourScrollview.bounds;

yourScrollview.contentSize = yourImageView.frame.size;
yourScrollview.minimumZoomScale = 0.4;
yourScrollview.maximumZoomScale = 4.0;
[yourScrollview setZoomScale:yourScrollview.minimumZoomScale];
yourScrollview.delegate = self;
[self.view addSubview:yourScrollview];

Не забудьте добавить UIScrollViewDelegate в ваш .h файл

Примечание: код ARC

0 голосов
/ 14 марта 2012

1. Создать новый проект -> Single View Application
2. Введите следующий код в:

"ViewController.m"

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(void) viewDidLoad
{
    [super viewDidLoad];

    UIScrollView * scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    [scrollView setContentSize:CGSizeMake(320, 800)];

    UIView * myView = [[UIView alloc] initWithFrame : CGRectMake(0, 0, 320, 800)]; 
    UIImageView * myImage = [[UIImageView alloc]initWithImage : [UIImage imageNamed:@"Test.png"]];
    [myView addSubview: myImage];
    [myImage release];
    [scrollView addSubview: myView];
    [myView release];

    [self.view addSubview: scrollView];
    [scrollView release];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
@end

3. Поместите изображение «Test.png» в ваш проект (перетащите в Xcode -> Папка: вспомогательные файлы)

0 голосов
/ 14 марта 2012
@interface ZoomViewController : UIViewController <uiscrollviewdelegate> {

    IBOutlet UIScrollView *scroll;
    UIImageView *image;
}

@property (nonatomic, retain) UIScrollView *scroll;

@end
</uiscrollviewdelegate></uikit>

Один раз проверьте метод Viewdidload.

- (void)viewDidLoad {

       image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img_body.png"]];

        [super viewDidLoad];

    image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img_body.png"]];

    scroll.contentSize = image.frame.size;

    [scroll addSubview:image];

    scroll.minimumZoomScale = 0.4;

    scroll.maximumZoomScale = 4.0;

    scroll.delegate = self;
    [scroll setZoomScale:scroll.minimumZoomScale];
    [super viewDidLoad];

}
...