【发布时间】:2012-12-14 22:10:03
【问题描述】:
我有点进退两难。这不是破坏交易,但如果有一个像样的答案,我很感兴趣。
我一直在使用 UIButton 和 UIBarButtonItem 内的自定义子视图(作为条形按钮项目的 customView)。我的自定义子视图不是UILabel 也不是UIImage,这就是我正在做我正在做的事情的原因。这个UIBarButtonItem 是我导航栏上的一个项目,导航栏有一个tintColor 集。我希望UIButton 具有UIBarButtonItemStyleBordered 的圆角矩形外观,这意味着它还应该采用其父栏的tintColor。
目前的解决方案已经实现了从 UIKit 中为 UINavigationBarDefaultButton.png 和家庭提取 png 文件。如果我没有设置 tintColor 属性,这看起来会很棒;相反,当我想要亮橙色(不是我使用的颜色,但你明白我的意思)时,按钮仍然是“iOS 海军蓝”。这让我陷入了两难境地:让 UIButton 的外观和行为类似于 UIBarButtonItem 样式的最佳方法是什么,包括采用 tintColor 属性?我可以自己在按钮上设置该属性;没什么大不了的。
我想在 CoreGraphics 中绘制 UIButton 的背景吗?是否有一个框架/库已经实现了这个?如果我在做不可能的梦,请告诉我。我对手工制作 CoreGraphics 还不是很厉害,但它绝对不在可能的范围之外。
如果无法做到这一点,我知道我总是可以使用很酷的自定义 UIView 我正在尝试修改并将其保存为图像(因此在 @987654340 中使用 UIImage @),但我想看看这是否可能。
这就是我正在处理的(下)。后退按钮看起来很棒,但这只是因为我没有弄乱它。我希望rightBarButtonItem 使用我设置的tintColor,但是为了给UIBarButtonItemStyleBordered 外观加上customView 设置,我不得不让按钮使用png 文件因为它的背景。下面是您看到的内容,即使在 UIBarButtonItem 上设置了 tintColor(因为它使用的是 png)。
【问题讨论】:
-
请致电
[super tintColor]。 -
[super tintColor]似乎不起作用;查看我的修改。
标签: ios cocoa-touch uikit core-graphics uibarbuttonitem