提问人:kiran 提问时间:12/16/2022 更新时间:12/16/2022 访问量:111
从 UITabBar 获取 UIImageView
Get UIImageView from UITabBar
问:
如何从特定项目中获取 imageView。从下面的代码中,其突出显示进入特定部分视图。UITabBar
我只需要为 CoachMark 突出显示“更多”选项卡。UIImageView
如何从UITabBar获取UIImageView值?
guard let view = self.tabBarController?.tabBar.items?.last?.value(forKey: "view") as? UIView else{
return coachMarksController.helper.makeCoachMark()
}
// let imageView = view.subviews.compactMap { $0 as? UIImageView }.first
// return coachMarksController.helper.makeCoachMark(for: imageView) // Fails
return coachMarksController.helper.makeCoachMark(for: view)
答:
0赞
Brandon Stillitano
12/16/2022
#1
将这些扩展程序添加到您的应用。
import UIKit
public extension UITabBar {
var tabBarButtons: [UIView] {
let values = self.subviews.filter({ String(describing: type(of: $0)) == "UITabBarButton" })
return values.sorted(by: { $0.frame.origin.x < $1.frame.origin.x })
}
}
public extension UIView {
var tabBarSwappableImageViews: [UIView] {
let values = self.subviews.filter({ String(describing: type(of: $0)) == "UITabBarSwappableImageView" })
return values.sorted(by: { $0.frame.origin.x < $1.frame.origin.x })
}
}
然后在选项卡栏控制器上调用此函数
let imageView: UIImageView? = UITabBarController?.tabBar.tabBarButtons[YOUR_INDEX_HERE].tabBarSwappableImageViews.first
评论
0赞
kiran
12/18/2022
对于第一个索引,它完美地工作。但是当使用第二个索引时,其失败将返回空数组。self.tabBarController?。tabBar.tabBarButtons[1].tabBarSwappableImageViews ▿ 可选<Array<UIView>> - 一些:0个元素
评论