小编Moj*_*ini的帖子

如何使用SwiftUI具有动态视图列表

我可以做一个静态列表

List {
   View1()
   View2()
}
Run Code Online (Sandbox Code Playgroud)

但是,如何从数组中动态生成元素列表?我尝试了以下操作,但出现错误:包含控制流语句的闭包不能与函数生成器“ ViewBuilder”一起使用

    let elements: [Any] = [View1.self, View2.self]

    List {
       ForEach(0..<elements.count) { index in
          if let _ = elements[index] as? View1 {
             View1()
          } else {
             View2()
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么解决办法吗?我要完成的工作是一个列表,其中包含不是静态输入的动态元素集。

ios swift swiftui xcode11

13
推荐指数
4
解决办法
3805
查看次数

我可以在 SwiftUI 中使用颜色文字吗

我想使用颜色文字使用资产目录中的颜色资产。在UIKit,我们可以直接使用颜色文字有没有什么方法可以在 SwiftUI 中使用颜色文字

我已经从带有UIColor参数的Color 初始值设定项中进行了搜索,但没有找到

uicolor nscolor swift swiftui xcode11

10
推荐指数
3
解决办法
5104
查看次数

带有 ScrollView 和导航栏 SwiftUI 的屏幕背景颜色

我在使用带有 SwiftUI 的滚动视图时尝试使用彩色背景,但这会导致导航标题不再折叠。我已经尝试了多种方法,但这始终是一个问题。

struct Person : Identifiable{
    var id : Int
    var name : String
}

struct ContentView: View {
    let people = [
        Person(id: 1, name: "Ricky"),
        Person(id: 2, name: "Dani"),
        Person(id: 3, name: "Mark"),
        Person(id: 4, name: "Kailin"),
        Person(id: 5, name: "James"),
        Person(id: 5, name: "Jenna")
    ]

    var body: some View {
        NavigationView{
            ZStack{
                Color.red
                    .edgesIgnoringSafeArea(.all)
                ScrollView{
                    ForEach(people, id: \.id) { person in
                        Text(person.name)
                            .frame(width: 300, height: 400)
                            .background(Color.blue)
                            .padding()
                    }
                }.navigationBarTitle("Home")
            }
        }
    }

    //    init(){
    // …
Run Code Online (Sandbox Code Playgroud)

colors ios swift swiftui

10
推荐指数
1
解决办法
3172
查看次数

“iOS 17.0.simruntime”无法打开,因为无法验证开发者

我刚刚下载了 iOS 17 运行时,但将其复制到目标位置后,会打开此弹出窗口,并且 Xcode 无法按预期使用模拟器:

弹出窗口

从 Apple 开发者网站下载

我怎样才能解决这个问题?

xcode dmg ios ios-simulator

10
推荐指数
2
解决办法
1万
查看次数

是否可以使用 SwiftUI 将键盘上的“返回”键更改为“完成”?

在 SwiftUI 中为 TextField 打开键盘时,我没有找到任何将“返回”键更改为“完成”的链接或指南。

现在可以不自定义 UITextField 吗?

swift swiftui

9
推荐指数
5
解决办法
8231
查看次数

navigationBarItems中的SwiftUI NavigationButton

我希望能够使用NavigationButton导航到中的新视图.navigationBarItems。这是我期望它应该起作用的方式:

NavigationView {
    Text("Hello world")
    .navigationBarTitle(Text("Title"))
    .navigationBarItems(trailing:
        NavigationButton(destination: TestView()) {
            Text("Next")
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

但是,“下一步”按钮没有任何作用!我知道PresentationButton提供了如下这样的弹出视图:

NavigationView {
    Text("Hello world")
        .navigationBarTitle(Text("Title"))
        .navigationBarItems(trailing:
            PresentationButton(destination: TestView()) {
                Text("Next")
            }
        )
}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的。

ios swift swiftui

8
推荐指数
1
解决办法
4020
查看次数

如何检测 iOS 13 中的 Light\Dark 模式变化?

某些 UI 设置无法在暗/亮模式下自动工作,因为UIColor. 例如shadow在图层中。因为我需要在明暗模式下删除和放置阴影,所以我需要在某个地方放置updateShadowIfNeeded()函数。我知道如何检测当前的模式:

func dropShadowIfNeeded() {
    switch traitCollection.userInterfaceStyle {
    case .dark: removeShadow()
    case .light: dropShadowIfNotDroppedYet()
    default: assertionFailure("Unknown userInterfaceStyle")
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我把这个函数放在 里面layoutSubviews,因为每次外观改变时它都会被调用:

override func layoutSubviews() {
    super.layoutSubviews()
    dropShadowIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)

但是这个函数被调用了很多。只有在userInterfaceStyle更改时才触发的正确功能是什么?

uikit uitraitcollection swiftui ios-darkmode

8
推荐指数
1
解决办法
7151
查看次数

MDCTextField rightView属性在iOS 13上损坏

我无法再在iOS 13上使用该rightView属性MDCTextField。我是唯一对此有疑问的人吗?

正确的视图宽度覆盖整个文本字段:防止用户交互并隐藏textView内容。

从切换MDCTextField到时没问题UITextField

ios swift material-components ios13

8
推荐指数
1
解决办法
675
查看次数

如何将值从 EnvironmentObject 传递到 SwiftUI 中的类实例?

我正在尝试将来自 EnvironmentObject 的值分配给名为userSettings的类实例categoryData,尝试将值分配给此处的类时出现错误ObserverCategory(userID: self.userSettings.id)

错误说: Cannot use instance member 'userSettings' within property initializer; property initializers run before 'self' is available

这是我的代码:

这是我的环境对象类:

//user settings
final class UserSettings: ObservableObject {
    @Published var name : String = String()
    @Published var id : String = "12345"
}
Run Code Online (Sandbox Code Playgroud)

接下来是我试图分配其值的代码:

//user settings
@EnvironmentObject var userSettings: UserSettings

//instance of observer object
@ObservedObject var categoryData = ObserverCategory(userID: userSettings.id)

class ObserverCategory : ObservableObject {

    let userID : String

    init(userID: String) {

        let db …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swift5.1

8
推荐指数
1
解决办法
3397
查看次数

在 SwiftUI 的列表中包含 TextEditor 的动态行高

我有一个List包含TextEditor

struct ContentView: View {
    @State var text: String = "test"

    var body: some View {
        List((1...10), id: \.self) { _ in
            TextEditor(text: $text)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它的项目并没有随着TextEditor. 我试过.fixedSize()修饰符但没有运气。我在这里缺少什么?

swift swiftui

7
推荐指数
2
解决办法
3681
查看次数