使用故事板参考时如何获取我的 UITabBarItem 的图像值?
How to get image value of my UITabBarItem when using StoryBoard Reference?
当我在 UITabBarController
(自定义的)之后使用 StoryBoard 参考 时出现错误。
我找到了如何自定义我的图标图像,但是在我的代码中,当我尝试获取该图像时,该值不存在。
这是我的图像配置:
当我 运行 我的应用程序出现错误时:
在我使用 Storyboard Reference 之前它起作用了。并且图像设置为我的其他选项卡栏项目,所以我不明白为什么我 运行 我的应用程序时会出现此错误。
编辑:我在哪里调用 setup()
函数?
我有 3 个文件来处理我的标签栏。
第一个 CustomTabBarController.swift
在 viewDidLoad
中包含此代码:
let customTabBar = CustomTabBar(frame: self.tabBar.frame)
customTabBar.datasource = self
customTabBar.delegate = self
customTabBar.setup()
它调用了CustomTabBar
的setup()
方法,即:
func setup() {
// get tab bar items from default tab bar
tabBarItems = datasource.tabBarItemsInCustomTabBar(self)
customTabBarItems = []
tabBarButtons = []
selectedTabBarItemIndex = 0
let containers = createTabBarItemContainers()
createTabBarItems(containers)
customTabBarItems[selectedTabBarItemIndex].iconView.tintColor = UIColor(red:0.44, green:0.52, blue:1.00, alpha:1.0)
}
此函数调用我的 CustomTabBarItem
视图的 setup()
函数:
func createTabBarItems(_ containers: [CGRect]) {
var index = 0
for item in tabBarItems {
let container = containers[index]
let customTabBarItem = CustomTabBarItem(frame: container)
customTabBarItem.setup(item) // HERE I call my setup() method of my Tab Bar Item
self.addSubview(customTabBarItem)
customTabBarItems.append(customTabBarItem)
let button = UIButton(frame: CGRect(x: 0, y: 0, width: container.width, height: container.height))
button.addTarget(self, action: #selector(CustomTabBar.barItemTapped(_:)), for: UIControlEvents.touchUpInside)
customTabBarItem.addSubview(button)
tabBarButtons.append(button)
index += 1
}
}
我找到了解决问题的方法,但我仍然不知道如何解释它。
我做了什么: 我在我的 Main storyboard
中引用的故事板中添加了一个标签栏项目。然后我把我的图片放在这个项目上,它工作正常。
当我在 UITabBarController
(自定义的)之后使用 StoryBoard 参考 时出现错误。
我找到了如何自定义我的图标图像,但是在我的代码中,当我尝试获取该图像时,该值不存在。
这是我的图像配置:
当我 运行 我的应用程序出现错误时:
在我使用 Storyboard Reference 之前它起作用了。并且图像设置为我的其他选项卡栏项目,所以我不明白为什么我 运行 我的应用程序时会出现此错误。
编辑:我在哪里调用 setup()
函数?
我有 3 个文件来处理我的标签栏。
第一个 CustomTabBarController.swift
在 viewDidLoad
中包含此代码:
let customTabBar = CustomTabBar(frame: self.tabBar.frame)
customTabBar.datasource = self
customTabBar.delegate = self
customTabBar.setup()
它调用了CustomTabBar
的setup()
方法,即:
func setup() {
// get tab bar items from default tab bar
tabBarItems = datasource.tabBarItemsInCustomTabBar(self)
customTabBarItems = []
tabBarButtons = []
selectedTabBarItemIndex = 0
let containers = createTabBarItemContainers()
createTabBarItems(containers)
customTabBarItems[selectedTabBarItemIndex].iconView.tintColor = UIColor(red:0.44, green:0.52, blue:1.00, alpha:1.0)
}
此函数调用我的 CustomTabBarItem
视图的 setup()
函数:
func createTabBarItems(_ containers: [CGRect]) {
var index = 0
for item in tabBarItems {
let container = containers[index]
let customTabBarItem = CustomTabBarItem(frame: container)
customTabBarItem.setup(item) // HERE I call my setup() method of my Tab Bar Item
self.addSubview(customTabBarItem)
customTabBarItems.append(customTabBarItem)
let button = UIButton(frame: CGRect(x: 0, y: 0, width: container.width, height: container.height))
button.addTarget(self, action: #selector(CustomTabBar.barItemTapped(_:)), for: UIControlEvents.touchUpInside)
customTabBarItem.addSubview(button)
tabBarButtons.append(button)
index += 1
}
}
我找到了解决问题的方法,但我仍然不知道如何解释它。
我做了什么: 我在我的 Main storyboard
中引用的故事板中添加了一个标签栏项目。然后我把我的图片放在这个项目上,它工作正常。