If I remember correctly from doing something like this in the path, the 
important thing in the below code is you are providing a custom image for the 
nav bar to draw as its background, instead of doing a blur effect. The image 
you supply happens to be empty so nothing is drawn in the end, and you get the 
effect you want.

Mike.

P.S. 2 minute builds sound insane though. The entirety of Sketch does 
incremental builds considerably faster than that. Go look at your build log, 
try to figure out what’s swallowing time.

> On 28 Jan 2022, at 21:13, Alex Zavatone via Cocoa-dev 
> <cocoa-dev@lists.apple.com> wrote:
> 
> Hi David.  I hate to tell you, your code doesn’t work.
> 
> The old UINavigationBar background that I’m trying to remove is still there 
> when I use your code over what I stumbled across.  
> 
> Something in the code below does remove the background image.
> 
>        self.navigationController!.navigationBar.isTranslucent = false
>        self.navigationController!.navigationBar.titleTextAttributes = 
> [.foregroundColor: UIColor.white]
> 
>        let navBar = self.navigationController!.navigationBar
>        let standardAppearance = UINavigationBarAppearance()
>        standardAppearance.configureWithOpaqueBackground()
>        standardAppearance.backgroundImage = UIImage()
> 
>        navBar.standardAppearance = standardAppearance
>        navBar.scrollEdgeAppearance = standardAppearance
> 
>        self.navigationController?.navigationBar.backgroundImage(for: .default)
>        navigationController?.navigationBar.setBackgroundImage(UIImage(), for: 
> .default)
> 
> Sadly, each build takes 2 minutes (thanks Swift!) even if I’m only changing 1 
> line, so it’s not time effective to figure out exactly what is.
> 
> Fun times.  
> 
> Cheers,
> Alex Zavatone
> 
> 
>> On Jan 28, 2022, at 2:02 PM, David Duncan <david.dun...@apple.com> wrote:
>> 
>> 
>> 
>>> On Jan 28, 2022, at 11:50 AM, Alex Zavatone <z...@mac.com 
>>> <mailto:z...@mac.com>> wrote:
>>> 
>>> Awesome.  Thank you, David.  
>>> 
>>> 
>>> I stumbled across this too while going through Apple documentation.  What’s 
>>> scary is that I have no idea why it works.
>>> 
>>>        self.navigationController!.navigationBar.barStyle = .default
>>>        self.navigationController!.navigationBar.isTranslucent = false
>>>        self.navigationController!.navigationBar.titleTextAttributes = 
>>> [.foregroundColor: UIColor.white]
>>>     self.navigationController?.navigationBar.backgroundImage(for: .default)
>>>        navigationController?.navigationBar.setBackgroundImage(UIImage(), 
>>> for: .default)
>> 
>> This stuff is pre-iOS 13 appearance customization. Using the new stuff will 
>> disable it.
>> 
>>> 
>>>        let navBar = self.navigationController!.navigationBar
>>>        let standardAppearance = UINavigationBarAppearance()
>>>        standardAppearance.configureWithOpaqueBackground()
>>>        standardAppearance.backgroundImage = UIImage()
>>> 
>>>        navBar.standardAppearance = standardAppearance
>>>        navBar.scrollEdgeAppearance = standardAppearance
>> 
>> With iOS 13 the navigation bar now has multiple appearance states. The 
>> scrollEdgeAppearance is when your bar is at the edge of a scroll view (top 
>> for a navigation bar, bottom for tab & toolbar). This configures the bar to 
>> use the same appearance state (in this case, a solid color background, using 
>> UIColor.systemBackgroundColor). In context the setting of backgroundImage 
>> doesn’t do anything (it defaults to nil and empty images have identical 
>> behavior).
>> 
>> By setting standardAppearance == scrollEdgeAppearance it in turn disables 
>> the “bar becomes transparent at the top” behavior introduced for large 
>> titles in iOS 13 and extended to all bar in iOS 15.
>> 
>>> 
>>> 
>>> Thanks again David.  You’re on my Christmas list.
>>> 
>>> Alex Zavatone
>>> 
>>>> On Jan 28, 2022, at 1:30 PM, David Duncan <david.dun...@apple.com 
>>>> <mailto:david.dun...@apple.com>> wrote:
>>>> 
>>>> UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
>>>> [appearance configureWithTransparentBackground];
>>>> navigationItem.standardAppearance = appearance;
>>>> 
>>>> Thats the simplest per-item way to do it. This does imply you adopt the 
>>>> new appearance APIs introduced in iOS 13.
>>>> 
>>>>> On Jan 28, 2022, at 11:03 AM, Alex Zavatone via Cocoa-dev 
>>>>> <cocoa-dev@lists.apple.com <mailto:cocoa-dev@lists.apple.com>> wrote:
>>>>> 
>>>>> Hi there.  I’m in the middle of trying to find out how the hell to remove 
>>>>> a background from a UINavigationBar and it’s not easy.  You’d think that 
>>>>> you could get a UInavigationBar.navigationitem.background and remove it 
>>>>> from a superview or set its alpha to 0, but it’s not that easy.
>>>>> 
>>>>> Does anyone have any clue how to get a reference to the background once 
>>>>> it has been set so that it can be set to 0 alpha or removed from the 
>>>>> superview?  
>>>>> 
>>>>> Thanks in advance and happy Friday.  Apple sure has ways to make things 
>>>>> that should be simple very obscure and extremely deifficult to handle.  
>>>>> 
>>>>> Cheers, 
>>>>> Alex Zavatone
>>>>> _______________________________________________
>>>>> 
>>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com 
>>>>> <mailto:Cocoa-dev@lists.apple.com>)
>>>>> 
>>>>> Please do not post admin requests or moderator comments to the list.
>>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com 
>>>>> <http://lists.apple.com/>
>>>>> 
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com
>>>>>  
>>>>> <https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com>
>>>>> 
>>>>> This email sent to david.dun...@apple.com <mailto:david.dun...@apple.com>
>>>> 
>>> 
>> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/mabdullah%40karelia.com
> 
> This email sent to mabdul...@karelia.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to