Внешний интерфейс ui bare ui founalcolor = .clear по -прежнему показывает светло -серой фон в iOS 26 (Flutter + Swift)IOS

Программируем под IOS
Ответить
Anonymous
 Внешний интерфейс ui bare ui founalcolor = .clear по -прежнему показывает светло -серой фон в iOS 26 (Flutter + Swift)

Сообщение Anonymous »

Поскольку я начинаю кодировать свое приложение, используя Flutter в коде VS с симулятором Xcode, и я пытаюсь придумать внешний вид строки меню, чтобы быть родным для пользовательского интерфейса IOS 26. Тем не менее, я не могу изменить цвет фона моего меню с светло -серого на прозрачный, а значок и текст пользовательского интерфейса остаются черным, а не белым. < /P>
Что я получаю: Бар меню со светло -серым фоном, черным знаком и текстом.

Код: Выделить всё

import Flutter
import UIKit

final class NativeTabBar: NSObject, FlutterPlatformView, UITabBarDelegate {
private let container = UIView()
private let tabBar = UITabBar()
private var channel: FlutterMethodChannel
private var items: [UITabBarItem] = []

init(frame: CGRect, viewId: Int64, args: [String: Any]?, messenger: FlutterBinaryMessenger) {
self.channel = FlutterMethodChannel(name: "native_tabbar_\(viewId)", binaryMessenger: messenger)
super.init()
buildUI(frame: frame, args: args)
}

func view() -> UIView { container }

private func buildUI(frame: CGRect, args: [String: Any]?) {
container.backgroundColor = .clear
tabBar.translatesAutoresizingMaskIntoConstraints = false
tabBar.delegate = self

if #available(iOS 15.0, *) {
let appearance = UITabBarAppearance()
appearance.configureWithDefaultBackground()
tabBar.standardAppearance = appearance
tabBar.scrollEdgeAppearance = appearance
}

if let dicts = args?["items"] as? [[String: Any]] {
items = dicts.map { d in
let title = d["title"] as? String ?? ""
let symbol = d["sfSymbol"] as? String ?? "circle"
let img = UIImage(systemName: symbol)
let selectedImg = UIImage(systemName: symbol + ".fill") ?? img
return UITabBarItem(title: title, image: img, selectedImage: selectedImg)
}
}
tabBar.items = items

container.addSubview(tabBar)
NSLayoutConstraint.activate([
tabBar.leadingAnchor.constraint(equalTo: container.leadingAnchor),
tabBar.trailingAnchor.constraint(equalTo: container.trailingAnchor),
tabBar.topAnchor.constraint(equalTo: container.topAnchor),
tabBar.bottomAnchor.constraint(equalTo: container.bottomAnchor),
])

if let idx = args?["initialIndex"] as? Int, idx < items.count {
tabBar.selectedItem = items[idx]
}

channel.setMethodCallHandler { [weak self] call, result in
guard let self = self else { return }
switch call.method {
case "setSelectedIndex":
if let idx = call.arguments as? Int, idx >= 0, idx < self.items.count {
self.tabBar.selectedItem = self.items[idx]
}
result(nil)
default:
result(FlutterMethodNotImplemented)
}
}
}

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if let idx = items.firstIndex(of: item) {
channel.invokeMethod("onSelect", arguments: idx)
}
}
}
< /code>
Я попытался изменить прозрачность панели вкладок на полную прозрачность, но до сих пор она была неудачной: < /p>
Set tabBar.backgroundColor = .clear
Set tabBar.barTintColor = .clear
Set tabBar.isTranslucent = true
Set tabBar.isOpaque = false
Added appearance.configureWithTransparentBackground()
Set appearance.backgroundEffect = nil
Set appearance.backgroundColor = .clear
Set appearance.shadowColor = .clear
Set appearance.shadowImage = UIImage()
Tried both standardAppearance and scrollEdgeAppearance
< /code>
Цвет оттенка значков: < /p>
Tried tabBar.tintColor = .white
Tried tabBar.unselectedItemTintColor = UIColor.white.withAlphaComponent(0.6)
Added itemAppearance.normal.iconColor / itemAppearance.selected.iconColor (iOS 15+)
Ensured all icons are created with
UIImage(systemName: symbol)?.withRenderingMode(.alwaysTemplate)
Результат: обновления цвета текста белым, но значки остаются черными.

Подробнее здесь: https://stackoverflow.com/questions/797 ... background
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»