答案 0 :(得分:23)
编辑:我认为问题是关于UIPageControl。
您应该能够简单地修改UIPageViewController视图的颜色:
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor blueColor]; //Set to any color.
}
答案 1 :(得分:4)
在这种情况下,您需要更改UIPageViewCotroller的UIPageControl。
试试这个。
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()
答案 2 :(得分:3)
在UIPageViewController的视图中,您可以使用以下代码:
override func viewDidLoad() {
super.viewDidLoad()
// Set backbround color to white
self.view.backgroundColor = UIColor.white
}
我已将颜色设置为白色,但您可以插入任何您想要的颜色。
干杯!
答案 3 :(得分:0)
是的,您可以更改背景颜色,但它似乎不会在Interface Builder中公开。
遵循在IB中设置页面视图控制器的禁止方法,您需要:
1.将UIContainerView添加到视图控制器
2.将UIPageViewController添加到故事板中
3.将UIViewContainer中的Embed segue添加到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。道歉,因为我还没有搬到斯威夫特......
答案 4 :(得分:0)
要更改背景颜色,请使用UIPageControl
并将backgroundColor
属性分配给所需的UIColor
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.backgroundColor = [UIColor orangeColor];