objective-c - UIBarButtonItem 如何知道 UIToolBar 使用哪种 UIBarStyle?

标签 objective-c ios cocoa-touch uikit uitoolbar

在 Xcode ui 构建器中,当设置 UIToolBar 的 UIBarStyle(例如 BlackTranslucent)时,UIToolBarItem 会与其匹配背景图像。 UIToolBarItem 如何知道它应该使用哪种样式?

我正在尝试将自定义彩色图像放在常规背景图 block 的顶部(以编程方式将给定图像合并到背景图像的顶部)。我希望代码具有足够的通用性,以便能够处理所有 UIBarStyle。这意味着我想知道 UIToolBarItem 何时决定使用哪个背景并拦截它,以便我可以即时合成按钮图像。

最佳答案

由于无法看到苹果对 UIBarbuttonItem 的实现,我认为他们实际上不知道其 UIToolbar 的样式是什么。如果仔细观察,它们具有与工具栏相同的 alpha 和相同的覆盖层(表示 subview )。因此,在此突出显示层下方添加为 subview 的任何图像都应符合 UIToolbar 的样式。如果您想使用多个图像(每个 barStyle 一个),您可以使用 self.myToolbar.barStyle 确定它并在 -viewDidLoad 时间进行适当的计划。至于真正的图像绘制,子类化 UIToolbar 并重写 -drawRect: 并使用 [UIImage drawInRect:rect];

关于objective-c - UIBarButtonItem 如何知道 UIToolBar 使用哪种 UIBarStyle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10326909/

相关文章:

ios - 处理应用程序 : openURL: sourceApplication: to open files in iOS app

objective-c - 在 iPad 应用程序中包含同一系列的多种字体

ios - 将数据存储在具有快速关系的 Realm 数据库中

ios - 如何批准上传到 CloudKit

iphone - 在iOS上的Temp目录中删除文件

ios - UITabBar 元素之间的空隙?

java - Alog 转换为 Java

iOS 相比通过整个类来查看或逐个设置哪个设计更好

ios - 如何快速解决日历问题? (很高兴即使在 Objective-c 中也能看到)

ios - MVVM:AppDelegate 为 "ViewModel"