いつもお世話になっております。
表題の件で分からないため本件を立てております。
特定のItemだけ画像で表示しようとしていて、色々調査した結果レンダリングモードというUIImageの表示の仕方を変更すれば実現できそうだと思い、実装したのですがうまく反映されていません、、
公式サイトは以下です。
https://developer.apple.com/documentation/uikit/uiimage/renderingmode
念のため申し上げますと、bottomnavigationbarはGoogleが提供しているマテリアルデザインを採用しています。
詳細は以下です。
https://material.io/develop/ios/components/bottomnavigation
下記が実際に記述しているコードです。storyboardは何もいじっておりません。
viewController
swift
1 2import UIKit 3import MaterialComponents.MaterialBottomNavigation 4import MaterialComponents 5import IconFontStack 6 7class ViewController: UIViewController { 8 9 let bottomNavBar = MDCBottomNavigationBar() 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 15 viewDidLoadNavigation() 16 17 } 18 19 func viewDidLoadNavigation() { 20 21 let size = bottomNavBar.sizeThatFits(view.bounds.size) 22 23 let bottomNavBarFrame = CGRect(x: 0,y: view.bounds.height - size.height,width: size.width,height: size.height) 24 25 bottomNavBar.frame = bottomNavBarFrame 26 27 let homeItem = UITabBarItem( 28 title: "Home", 29 image: UIImage(icon: .googleMaterialDesign(.home), size: CGSize(width: 40, height: 40)), 30 tag: 0) 31 let messagesItem = UITabBarItem( 32 title: "問題の画像", 33 image: UIImage(named: "register_icon")?.withRenderingMode(.alwaysOriginal), 34 tag: 1) 35 messagesItem.badgeValue = "8" 36 let favoritesItem = UITabBarItem( 37 title: "Favorites", 38 image: UIImage(icon: .fontAwesome(.starO), size: CGSize(width: 40, height: 40)), 39 tag: 2) 40 favoritesItem.badgeValue = "" 41 let readerItem = UITabBarItem( 42 title: "Reader", 43 image: UIImage(icon: .fontAwesome(.signIn), size: CGSize(width:40, height: 40)), 44 tag: 3) 45 readerItem.badgeValue = "88" 46 47 let birthdayItem = UITabBarItem( 48 title: "ic_birthday", 49 image: UIImage(icon: .googleMaterialDesign(.accountCircle), size: CGSize(width:40, height: 40)), 50 tag: 4) 51 birthdayItem.badgeValue = "888+" 52 bottomNavBar.items = [homeItem, messagesItem, favoritesItem, readerItem, birthdayItem] 53 bottomNavBar.selectedItem = homeItem 54 55 view.addSubview(bottomNavBar) 56 57 } 58 59 60}
よろしくお願いします!
追記
ずっと黒・グレイでitemが表示されていたので、tintColorが悪さしてるんじゃないかと思って色々調べていたらライブラリの初期値が黒とグレイでした、、
このデフォルト値をOverrideでnilに出来ますでしょうか?
自分がやったこととしてはtintColorDidChange()を使って変更しようとしてもnilが渡せませんでした。
上記が関係しているかは、分かりませんがどんな意見でもいいのでご教授いただければと思います。
回答1件
あなたの回答
tips
プレビュー