Как настроить содержимое каждой страницы с помощью Page Control и UIScrollView? - PullRequest
0 голосов
/ 20 августа 2009

У меня проблема с настройкой каждой страницы с помощью pagecontrol и UIScrollView. Я настраиваю Page Control от Apple.

По сути, я бы хотел, чтобы каждая страница по-разному содержала текст и изображение на разных страницах. Страница 1 будет иметь весь текст, Страница 2 будет иметь только изображения, Страница 3 будет иметь весь текст и будет продолжаться.

Это оригинальный код:

    // Set the label and background color when the view has finished loading.
    - (void)viewDidLoad {
        pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
        self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
}

Как видите, этот код показывает только страницу 1, страницу 2 и т. Д. При прокрутке вправо.

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

Я объявляю pageText как UILabel.

// Set the label and background color when the view has finished loading.
- (void)viewDidLoad {
    pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
    self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
    if (pageNumber == 1) {
        pageText.text = @"Text in page 1";
    }
    if (pageNumber == 2) {
            pageText.text = @"Image in page 2";
    }
    if (pageNumber == 3) {
            pageText.text = @"Text in page 3";
    }

}

Я не знаю, почему это не работает. Также, если у вас есть лучший способ сделать это, дайте мне знать. Спасибо.

Ответы [ 3 ]

0 голосов
/ 20 августа 2009

В этом ответе будет очень мало кода, поскольку у меня нет внятного примера. Вы в основном хотите иметь некоторый массив страниц, который содержит представление (или контроллер представления) для каждой страницы. Нет необходимости, чтобы все представления / контроллеры в массиве были одинаковыми (хотя у вас должны быть все представления или все контроллеры представления, а не оба). Если у вас есть это, вы можете загрузить что-то особенное в зависимости от того, какую страницу вы загружаете.

Имеет ли это смысл?

0 голосов
/ 12 апреля 2010

попробуйте скачать этот проект из репозитория SVN. Я не смог закончить документацию, но проверил IGUIScrollViewElements ... есть короткий пример для IGUIScrollViewImage, и код очень похож ... Я приложу все усилия, чтобы закончить примеры для оставшихся как можно скорее ...

http://code.google.com/p/iphone-guru-uilibrary/

0 голосов
/ 20 августа 2009

Я скачал образец, добавил следующие строки в MyViewController.h

IBOutlet UILabel *pageText;

@property (nonatomic, retain) UILabel *pageText;

В MyViewController.m я добавил @synthesize pageText; строка и содержимое вашего viewDidLoad.

Я открыл файл MyView.xib / en в конструкторе интерфейсов и подключил новую метку. Скомпилировал и запустил, и это сработало по большей части. Единственное, что казалось неправильным, это то, что это была страница позади. поэтому я переписал его, чтобы просто обрабатывать нечетные или четные страницы.

- (void)viewDidLoad {
    pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
    self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
    if (pageNumber % 2) {
        pageText.text = [NSString stringWithFormat:@"Image in page %d", pageNumber + 1];
    } else {
        pageText.text = [NSString stringWithFormat:@"Text in page %d", pageNumber +1];
    }   
}
...