我試圖改變導航欄的窄陰影酒吧和我使用下面的代碼:編輯導航欄的上影線的UIImageView沒有影響
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的觀點hieararchy顯示,並從那裏傾倒攝像畫面是這樣的結果:
> Printing description of $124: <UIImageView: 0x126d21030; frame = (0
> 64; 320 0.5); userInteractionEnabled = NO; layer = <CALayer:
> 0x126d0b470>
可以看出它是同一個對象,但其高度爲0.5,而不是5 爲什麼變化對尺寸和顏色沒有影響? (我也改變了UIImage,但這也沒有任何影響)。
我知道這種方法,並嘗試過,但它有複雜的敲擊效果 - 我使用搜索欄出現/消失和其他東西繼續和整體不工作,因爲在使用時設置半透明的額外要求的ShadowImage。 – Gruntcakes
@ChromiumDioxide我正在開發一個應用程序,因爲我們講的是使用帶有自定義'shadowImage'的非半透明導航欄。你確定這是一個要求嗎? –
正如我所說,更改UImage也不起作用,爲什麼?調整大小隻是爲了在調試時更容易看到結果。 – Gruntcakes