いつもお世話になっております。
早速ですが、PagingMenuControllerを用いてWebアプリを作っているのですが、
MenuitemViewCustomizableのカスタマイズ性についてお聞きしたいです。
//公式サイト
https://github.com/kitasuke/PagingMenuController/blob/master/README.md
//参考サイト
https://nobuhiroharada.com/2018/01/28/swift4-pagingmenu/
公式サイトにあるMenuitemViewCustomizableのMenuItemTextですが、返り値は「text」「multilineText」「image」「custom」を返すことができ、それぞれのシュチュエーションに合わして変更できると思います。
自分は「text」を使用して各タブに赤・青・黄とテキストを追加したんですが、色も変えようとして上記参考サイトを参考に引数「color」「selectColor」を使用して文字色と選択された時の文字色を変更してみました。
タブの背景色も変えたいので公式サイトで引数はどんぐらいあるのか見たのですが、「text」の引数は「title」だけみたいなんですね。
「color」「selectColor」が公式では記入されていないのになぜ動いているのか理解できなくて質問した次第です。
なぜ動いているのかと背景色を設定するにはどのようにしたら良いかご教授頂ければと思います。
swift4
1import UIKit 2import PagingMenuController 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // PagingMenuController追加 9 let options = PagingMenuOptions() 10 let pagingMenuController = PagingMenuController(options: options) 11 12 // 高さ調整。この2行を追加 13 pagingMenuController.view.frame.origin.y += 20 14 pagingMenuController.view.frame.size.height -= 20 15 16 self.addChild(pagingMenuController) 17 self.view.addSubview(pagingMenuController.view) 18 pagingMenuController.didMove(toParent: self) 19 } 20 21 override func didReceiveMemoryWarning() { 22 super.didReceiveMemoryWarning() 23 // Dispose of any resources that can be recreated. 24 } 25 26} 27 28private struct PagingMenuOptions: PagingMenuControllerCustomizable { 29 let pv1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PagingMenuVC1") 30 let pv2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PagingMenuVC2") 31 let pv3 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PagingMenuVC3") 32 33 fileprivate var componentType: ComponentType { 34 return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers) 35 } 36 37 fileprivate var pagingControllers: [UIViewController] { 38 return [pv1, pv2, pv3] 39 } 40 41 fileprivate struct MenuOptions: MenuViewCustomizable { 42 var displayMode: MenuDisplayMode { 43// return .infinite(widthMode: .flexible, scrollingMode: .scrollEnabled) 44 return .segmentedControl 45 } 46 var height: CGFloat { 47 return 40 48 } 49 var backgroundColor: UIColor { 50 return UIColor.lightGray 51 } 52 var selectedBackgroundColor: UIColor { 53 return UIColor.lightText 54 } 55 var focusMode: MenuFocusMode { 56 return .underline(height: 3, color: UIColor.black, horizontalPadding: 0, verticalPadding: 0) 57 } 58 var itemsOptions: [MenuItemViewCustomizable] { 59 return [MenuItem1(), MenuItem2(), MenuItem3()] 60 } 61 } 62 63 64 fileprivate struct MenuItem1: MenuItemViewCustomizable { 65 var displayMode: MenuItemDisplayMode { 66 return .text(title: MenuItemText(text: "赤い画面", color: UIColor.red, selectedColor: UIColor.white)) 67 } 68 } 69 70 fileprivate struct MenuItem2: MenuItemViewCustomizable { 71 var displayMode: MenuItemDisplayMode { 72 return .text(title: MenuItemText(text: "青い画面", color: UIColor.blue, selectedColor: UIColor.white)) 73 } 74 } 75 76 fileprivate struct MenuItem3: MenuItemViewCustomizable { 77 var displayMode: MenuItemDisplayMode { 78 return .text(title: MenuItemText(text: "黄色い画面", color: UIColor.yellow, selectedColor: UIColor.yellow)) 79 } 80 } 81 82}
回答1件
あなたの回答
tips
プレビュー