Как установить цвет фона для UIPageViewController?

Как установить цвет для фона в UIPageViewController? Можно ли это сделать в раскадровке?

введите описание изображения здесь


person Bartłomiej Semańczyk    schedule 03.08.2015    source источник


Ответы (5)


редактировать: я думал, что вопрос был о UIPageControl.

Вы должны иметь возможность просто изменить цвет представления UIPageViewController:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blueColor]; //Set to any color.
}
person AmsalK    schedule 03.08.2015

Внутри представления UIPageViewController вы можете использовать этот код:

override func viewDidLoad() {
    super.viewDidLoad()

    // Set backbround color to white
    self.view.backgroundColor = UIColor.white
}

Я установил белый цвет, но вы можете вставить любой цвет, какой захотите.

Ваше здоровье!

person Guilherme Crozariol    schedule 12.02.2018

В этом случае вам нужно изменить UIPageControl на UIPageViewCotroller.

Попробуй это.

UIPageControl* proxy = [UIPageControl appearanceWhenContainedIn:[self.pageViewController class], nil];
[proxy setPageIndicatorTintColor:[UIColor lightGrayColor]];
[proxy setCurrentPageIndicatorTintColor:[UIColor blackColor]];
[proxy setBackgroundColor:[UIColor whiteColor]];

Если ваш проект написан Swift, попробуйте это.

let proxy: UIPageControl = UIPageControl.appearanceWhenContainedInInstancesOfClasses(self.pageViewController.self)
proxy.pageIndicatorTintColor = UIColor.lightGrayColor()
proxy.currentPageIndicatorTintColor = UIColor.blackColor()
proxy.backgroundColor = UIColor.whiteColor()
person pixyzehn    schedule 03.08.2015
comment
Вопрос касается цвета scrollView UIPageViewController, а не UIPageControl. - person kelin; 17.11.2015
comment
Вопрос в том, как установить цвет фона для UIPageViewController, а не для UIPageControl, отредактируйте свой ответ. - person ; 24.09.2017

Да, вы можете изменить цвет фона, но он не отображается в Interface Builder.

Следуя запрещенному методу настройки контроллера просмотра страницы в IB, вам необходимо:
1. Добавить UIContainerView в контроллер просмотра
2. Добавить UIPageViewController в раскадровку
3. Добавить переход Embed из UIViewContainer в UIPageViewController (с идентификатором myPageViewController)

Из вашего исходного контроллера представления добавьте это в свой метод prepareForSegue:

    if ([segueName isEqualToString: @"myPageViewController"]) {
        /* _pageViewController is a property where I keep a reference to the embedded controller */
        if (_pageViewController == nil) {
            /* only do this once */
            _pageViewController = (WePageViewController*)[segue destinationViewController];
            _pageViewController.dataSource = ...;
            _pageViewController.delegate = ...;
            _pageViewController.view.backgroundColor = [UIColor purpleColor];
    }

p.s. извиняюсь, так как я еще не перешел на Swift...

person Dan Loughney    schedule 04.08.2015

Чтобы изменить цвет фона, используйте UIPageControl и назначьте свойство backgroundColor нужному UIColor.

UIPageControl *pageControl = [UIPageControl appearance]; pageControl.backgroundColor = [UIColor orangeColor];

person damnsun    schedule 15.11.2016