我需要导航栏变得透明。这是我在我的ViewController:
class ViewController: UIViewController {
@IBOutlet weak var navbar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navbar.isTranslucent=true
navbar.shadowImage = UIImage()
navbar.backgroundColor = UIColor.clear
}
Run Code Online (Sandbox Code Playgroud)
根据调试视图层次结构UIVisualEffectBackdropView,UIVisualEffectSubview并且UIVisualEffectSubview(是其中两个)阻止它变得透明。Ps:我没有使用导航控制器。
我该如何解决?
我想问你关于下面图片中选择的部分。

这个部分的名称是什么,我如何在 React Native 中设置它的样式?现在我的 APK 有一个难看的白条,我看不到电池或 WiFi 的水平。
我试图在带有 #available 的 if 语句中删除 iOS 13 中的导航栏背景。我知道在 else 语句中删除 iOS 12 和旧版 iOS 导航栏背景的原始代码。但是,Apple 确实在任何地方宣布了一个名为Appearance的新系统,以支持新的 iOS 13 系统。
let app = UINavigationBarAppearance()
let navigationBar = self.navigationController?.navigationBar
app.configureWithOpaqueBackground()
app.shadowImage = UIImage()
self.navigationController?.navigationBar.scrollEdgeAppearance = app
navigationBar!.standardAppearance = app
navigationBar!.scrollEdgeAppearance = app
Run Code Online (Sandbox Code Playgroud)
我相信这个 configureWithOpaqueBackground() 允许我们删除导航栏背景,但我在 iOS 13.1 模拟器上测试出现黑色导航栏背景。我知道是什么原因造成的。
app.configureWithOpaqueBackground()
app.titleTextAttributes = [.foregroundColor: UIColor.white]
app.largeTitleTextAttributes = [.foregroundColor: UIColor.white]
app.backgroundColor = #colorLiteral(red: 0.1603881121, green: 0.1677560508, blue: 0.2133775949, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
该代码允许我们将自定义颜色放在黑色背景上。我准备在 viewWillDisappear 的语句中添加该代码,以便在self.navigationController?.navigationBar.scrollEdgeAppearance = app使用 remove app.configureWithOpaqueBackground()和 之前将导航栏背景恢复为正常颜色背景app.shadowImage = …
如何使用目标C将导航栏标题设置为iOS 11中的新大版本?
swift中有很多例子但没有客观c.
Apple建议
@property(nonatomic, readwrite, assign) BOOL prefersLargeTitles;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我的代码是
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO];
[self.navigationController.navigationBar setBackgroundImage:[[UINavigationBar appearance] backgroundImageForBarMetrics:UIBarMetricsDefault] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.barStyle=UIBarStyleDefault;
Run Code Online (Sandbox Code Playgroud) 我尝试通过以下代码隐藏NavigationBar:
public static void setFullscreen(final View decorView) {
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
});
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility());
}
}
Run Code Online (Sandbox Code Playgroud)
并为每个活动:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}
Run Code Online (Sandbox Code Playgroud)
和活动主题:
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">true</item>
<item …Run Code Online (Sandbox Code Playgroud) android ×2
swift ×2
fullscreen ×1
ios ×1
ios11 ×1
ios13 ×1
java ×1
objective-c ×1
react-native ×1
uikit ×1