【发布时间】:2016-08-08 11:15:59
【问题描述】:
我和here 有同样的问题。我可以通过将文本设置为白色来使状态栏可见,但这不是我的目标。我的意思是在栏的顶部着色,就像所有导航栏一样。我已经能够通过在 layoutSubviews 下添加我想要的带有视图的形状来实现这一点,但是这样你就不能交互或看到 UINavigationItem。代码:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor yellowColor] setFill];
UIRectFill(rect);
这是结果:
这是用drawRect可以实现的韧带:
如果你在 layoutSubviews 下这样做,就会发生这种情况:
如您所见,后面的文字,箭头,都丢失了。所以我真的在寻找一种让 drawRect 工作的方法!提前感谢您的帮助!
【问题讨论】:
-
你的意思是你想让它看起来像你的第三张照片,但按钮不显示?
-
@Tj3n 是的,但这不仅仅是我想要的颜色,否则我会使用 tint color 属性。该栏是一个适当的草图(带有星形和多种颜色)。这是因为 layoutsubviews 工作在 drawRect 之上,因为视图阻塞了所有可见元素(按钮、主屏幕中的标题、所有内容)。
-
您实际上可以隐藏
navigationBar背景、阴影和颜色以清除颜色,然后在该不可见导航栏下方添加您的自定义视图,我正在为自定义导航栏执行此操作:我可以快速回答如果你需要,否则谷歌很容易 -
@Tj3n 当然可以,我也可以使用 Swift,我想看看答案来看看这个:)
标签: ios objective-c uinavigationbar core-graphics drawrect