アプリで UIPageViewController を使用していますが、正常に動作しています。ただし、自動的に追加されたページ コントロールは、現在のビュー コントローラーの下部マテリアルを隠している黒い背景を持っています (下の図を参照)。UIPageViewController のページ コントロールを呼び出して色を変更することは可能ですか? 黒ではなく色をクリアに設定するように、ページ コントロールをビュー コントローラー (パス アプリのウォークスルーなど) の上に表示する必要があります。
質問する
35922 次
9 に答える
8
UIPageViewController をサブクラス化し、次のコードを追加するだけです。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[NSClassFromString(@"_UIQueuingScrollView") class]]) {
CGRect frame = view.frame;
frame.size.height = view.superview.frame.size.height;
view.frame = frame;
}
}
}
これにより、内部スクロール ビュー フレームが拡張されます。
于 2014-09-05T08:25:51.227 に答える
0
ページ ビュー コントローラーのページ コントロールの色を変更するセットアップ メソッドのコードを参照してください。
private func setupPageController() {
self.pageController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
self.pageController?.dataSource = self
self.pageController?.delegate = self
self.pageController?.view.backgroundColor = .clear
self.pageController?.view.frame = CGRect(x: 0,y: 0,width: self.view.frame.width,height: self.view.frame.height)
self.addChild(self.pageController!)
self.view.addSubview(self.pageController!.view)
for item in self.pageController?.view?.subviews ?? []{
if item is UIPageControl{
(item as! UIPageControl).pageIndicatorTintColor = #colorLiteral(red: 0.501960814, green: 0.501960814, blue: 0.501960814, alpha: 1)
(item as! UIPageControl).currentPageIndicatorTintColor = #colorLiteral(red: 1, green: 0.7489039302, blue: 0, alpha: 1)
break
}
}
let initialVC = strBoard.instantiateViewController(withIdentifier: "TutorialOneVC")
self.pageController?.setViewControllers([initialVC], direction: .forward, animated: true, completion: nil)
self.pageController?.didMove(toParent: self)
}
于 2020-03-18T18:12:01.707 に答える