【问题标题】:How does UIBarButtonItem know which UIBarStyle the UIToolBar uses?UIBarButtonItem 如何知道 UIToolBar 使用哪个 UIBarStyle?
【发布时间】:2012-04-26 03:41:39
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c ios cocoa-touch uikit uitoolbar


    【解决方案1】:

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

    【讨论】:

    • 我不确定您所说的叠加层是什么。你的意思是玻璃般的外观?我不确定当您添加为子视图时,它会如何自动适应 UIBarStyle?据我所知,有两个图像,未按下时和按下时。
    • 子视图自动采用其父视图的基本外观方面(alpha,它们上方的任何 z 顺序层)。整个两个图像意味着你想要一个 UIButton。
    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    相关资源
    最近更新 更多