【发布时间】:2016-06-08 17:55:26
【问题描述】:
我正在尝试更改导航栏的窄阴影栏并使用以下代码:
if let hairline = findNavigationBarHairline(navigationBar)
{
hairline.bounds.size.height = 5.0
hairline.backgroundColor = UIColor.blueColor()
}
还有这个:
func findNavigationBarHairline(view:UIView) -> UIImageView?
{
if let hairline = view as? UIImageView where hairline.bounds.size.height <= 1.0
{
return hairline
}
for subview in view.subviews
{
if let imageView = findNavigationBarHairline(subview)
{
return imageView
}
}
return nil
}
这成功地找到了作为阴影线的 UIImageView,但是如果我尝试在这里更改任何内容,它就没有效果。这是在代码中设置大小/颜色之后的图像视图的 po:
(lldb) po hairline
<UIImageView: 0x126d21030; frame = (0 61.75; 320 5); userInteractionEnabled = NO; layer = <CALayer: 0x126d0b470>>
这里可以看到高度为 5,但仍以原始大小和颜色显示。如果我使用 XCode 的视图层次结构显示并从那里转储图像视图,结果如下:
> Printing description of $124: <UIImageView: 0x126d21030; frame = (0
> 64; 320 0.5); userInteractionEnabled = NO; layer = <CALayer:
> 0x126d0b470>
可以看出它是同一个对象,但是它的高度是 0.5 而不是 5。 为什么改变大小和颜色没有效果? (我也更改了 UIImage,但这也没有任何效果)。
【问题讨论】: