IOS: добавить несколько вложенных прокрутки в прокрутки, изображение не появляется - PullRequest
1 голос
/ 09 января 2012

У меня есть этот код:

- (void)viewDidLoad
{ 
[super viewDidLoad];

NSArray *image = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], [UIImage imageNamed:@"3.png"], nil];

for (int i = 0; i < image.count; i++) {
    CGRect frame;
    frame.origin.x = scrollV.frame.size.width * i;
    frame.origin.y = 0;
    frame.size = scrollV.frame.size;

    UIScrollView *subScrollView = [[UIScrollView alloc] initWithFrame:frame];
    UIImageView *subview = [[UIImageView alloc] initWithFrame:frame];

    [subview setImage:[image objectAtIndex:i]];
    [subScrollView addSubview:subview];
    [scrollV addSubview:subScrollView];
    [subview release];
    [subScrollView release];
}

scrollV.contentSize = CGSizeMake(scrollV.frame.size.width * image.count, scrollV.frame.size.height);

}

scrollV - это основной вид прокрутки, и для него включена функция «подкачка страниц» если я использую этот код, у меня есть scrollV с включенной подкачкой, но я вижу внутри него только «1.png» на первой странице, я не вижу других png, почему?

1 Ответ

1 голос
/ 09 января 2012

Вы устанавливаете кадр subview на неправильное значение. Это делает его таким же кадром, как subScrollView, поэтому он отталкивает его вправо. Попробуйте это:

- (void)viewDidLoad
{ 
[super viewDidLoad];

NSArray *image = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], [UIImage imageNamed:@"3.png"], nil];

for (int i = 0; i < image.count; i++) {
    CGRect frame;
    frame.origin.x = scrollV.frame.size.width * i;
    frame.origin.y = 0;
    frame.size = scrollV.frame.size;

    UIScrollView *subScrollView = [[UIScrollView alloc] initWithFrame:frame];
    UIImageView *subview = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, frame.size.width, frame.size.height)];

    UIImage *image = [image objectAtIndex:i];
    subScrollView.contentSize = image.size;

    [subview setImage:image];
    [subScrollView addSubview:subview];
    [scrollV addSubview:subScrollView];
    [subview release];
    [subScrollView release];
}

scrollV.contentSize = CGSizeMake(scrollV.frame.size.width * image.count, scrollV.frame.size.height);

}

Редактировать: Также, вероятно, лучше всего установить размер содержимого внутреннего прокрутки. Я добавил код на этот счет выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...