如何更改 SwiftUI 中 tabItems 中图像(图标)的颜色?
我尝试了很多东西,但没有任何作用......
这是我的测试代码:
import SwiftUI
struct TestTabviewIconColor: View {
var body: some View {
TabView {
Text("The First Tab")
.tabItem {
Image(systemName: "1.square.fill")
.foregroundColor(.red)
.accentColor(.red)
.colorMultiply(.red)
Text("First")
}
Text("Another Tab")
.tabItem {
Image(systemName: "2.square.fill")
Text("Second")
}
Text("The Last Tab")
.tabItem {
Image(systemName: "3.square.fill")
Text("Third")
}
}
.font(.headline)
}
}
struct TestTabviewIconColor_Previews: PreviewProvider {
static var previews: some View {
TestTabviewIconColor()
}
}
Run Code Online (Sandbox Code Playgroud) 从 iOS 14 开始,我有一个奇怪的行为,我在添加 navigationBarItems 后立即在 NavigationView 中的列表周围填充...
我的代码:
import SwiftUI
struct TestList: View {
var body: some View {
NavigationView{
List {
Text("hello world")
Text("hello world")
Text("hello world")
}
.navigationBarTitle(Text("Test List"), displayMode:.inline)
.navigationBarItems(leading:
Image(systemName: "bell")
)
}
}
}
struct TestList_Previews: PreviewProvider {
static var previews: some View {
TestList()
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
谢谢
如何将 iOS 15 Xcode 13 中的 TabView tabItem 上的填充图标更改为不填充?
现在看来图标是默认填充的......
我的代码:
import SwiftUI
struct Test_Home_V: View {
var body: some View {
TabView {
HomeList_V()
.tabItem {
Label("_HomeTitle", systemImage: "house")
}
...
Run Code Online (Sandbox Code Playgroud)
注意:从 iOS 15 开始,您不应明确请求 SF Symbols 图标的填充变体,因为系统会根据需要自动使用它们。
那么我怎样才能像以前一样得到我的图标(SF符号)的轮廓呢?
谢谢
我想摆脱我的函数中的“‘windows’在 iOS 15.0 中已弃用:在相关窗口场景上使用 UIWindowScene.windows”消息(顺便说一下,我的函数运行得很好。)。
涉及的代码行:
banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我的职能:
struct AdView : UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<AdView>) -> GADBannerView {
let banner = GADBannerView(adSize: kGADAdSizeBanner)
banner.adUnitID = "ca-app-pub-3940256099942544/2934735716" // test ad
banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
banner.load(GADRequest())
return banner
}
func updateUIView(_ uiView: GADBannerView, context: UIViewRepresentableContext<AdView>) {}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过,但它不起作用:
banner.rootViewController = UIApplication.shared.connectedScenes.first?.rootViewController
Run Code Online (Sandbox Code Playgroud)
谢谢
是否可以以简单的方式在 SwiftUI 中为 TabView tabItem 添加徽章值?
像这样(这里是普通的 Swift):
import UIKit
class TabBarController: UITabBarController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBar.items![2].badgeValue = "7"
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我尝试使 NWPathMonitor 成为一个可观察对象,如果有网络连接则返回 true,如果没有网络连接则返回 false。
你能帮助我吗,因为我的解决方案不起作用。
谢谢
import Foundation
import Network
class TestNetStatus: ObservableObject {
let monitor = NWPathMonitor()
let queue = DispatchQueue.global(qos: .background)
@Published var connected: Bool = false
private var isConnected: Bool = false
init() {
monitor.start(queue: queue)
monitor.pathUpdateHandler = { path in
if path.status == .satisfied {
self.isConnected = true
} else {
self.isConnected = false
}
}
self.connected = isConnected
}
}
Run Code Online (Sandbox Code Playgroud) 如何navigationBarItems
在 SwiftUI 和 iOS 14 中添加徽章?
我在网上找不到任何东西...
例如,我想在开头添加一个徽章navigationBarItems
:
var body: some View {
NavigationView {
ZStack {
VStack(spacing: 0) {
Text("Peanut")
.padding(-10)
.navigationBarTitle(Text("HomeTitle"), displayMode: .inline)
.navigationBarItems(leading:
HStack {
NavigationLink(destination: Notifications()) {
Image(systemName: "bell")
.font(.system(size: 20))
}.foregroundColor(.white)
}, trailing:
HStack {
NavigationLink(destination: Settings()) {
Image(systemName: "gearshape")
.font(.system(size: 20))
}.foregroundColor(.white)
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个UIGestureRecognizer以仅用一根手指即可旋转视图。
视图从一开始就旋转,但是一旦达到一定程度,旋转就会沿另一个方向旋转。
您能帮我提供我的代码吗?
UIViewcontroller <-一切都很好
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let wheel = TestWheelView()
wheel.frame = CGRect.init(x: self.view.center.x - 120, y: self.view.center.y - 120, width: 240, height: 240)
self.view.addSubview(wheel)
wheel.addGestureRecognizer(TestRotateGestureRecognizer())
}
Run Code Online (Sandbox Code Playgroud)
UIGestureRecognizer <-问题在这里
import UIKit
class TestRotateGestureRecognizer: UIGestureRecognizer {
var previousPoint = CGPoint()
var currentPoint = CGPoint()
var startAngle = CGFloat()
var currentAngle = CGFloat()
var currentRotation = CGFloat()
var totalRotation = CGFloat()
func angleForPoint(_ point:CGPoint) -> CGFloat{
var angle = …
Run Code Online (Sandbox Code Playgroud) 我有一堂课:
class AppInfos_M: ObservableObject {
@Published var currentUser: User_M = User_M()
@Published var userTo: User_M = User_M()
}
Run Code Online (Sandbox Code Playgroud)
我声明它main
并传递到我的视图environmentObject
:
...
@main
struct TestApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
...
@StateObject var appInfos_M = AppInfos_M()
var body: some Scene {
WindowGroup {
LaunchScreen_V()
.environmentObject(appInfos_M)
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
该课程在我的应用程序中运行得非常好。现在我需要从 修改它AppDelegate
,因为我需要appInfos_M.userTo.id
在收到通知时获取。我尝试了几件事,但没有一个有效。我怎样才能访问它?
在我需要它的所有视图中,我声明这种方式并且它工作正常,但不是在AppDelegate
,为什么?:
@EnvironmentObject var appInfos_M: AppInfos_M
Run Code Online (Sandbox Code Playgroud)
这是我尝试过但不起作用的测试之一:
...
class AppDelegate: NSObject, UIApplicationDelegate { ... }
...
@available(iOS 10, *)
extension AppDelegate : …
Run Code Online (Sandbox Code Playgroud)