> On Jan 28, 2022, at 11:50 AM, Alex Zavatone <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
>> 
> 

_______________________________________________

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