小编Har*_*rdy的帖子

如何解决:iOS 13.0中不推荐使用“ keyWindow”

我正在将Core Data和Cloud Kit一起使用,因此必须在应用程序启动期间检查iCloud用户状态。如果出现问题,我想向用户发出一个对话框UIApplication.shared.keyWindow?.rootViewController?.present(...),直到现在我还是这样做。

在Xcode 11 beta 4中,现在有一条新的弃用消息,告诉我:

iOS 13.0中已弃用“ keyWindow”:不应将其用于支持多个场景的应用程序,因为它会返回所有已连接场景的关键窗口

我该如何显示对话框?

uikit uiwindow uiapplication uiscene

43
推荐指数
14
解决办法
8426
查看次数

SwiftUI TabView:带有自定义图像的.tabItem不显示

我有一个TabView应显示.tabItem带有自定义图像的 a (不是Image(systemName:)):

@ObservedObject var model: MaintainAreaSelectionModel = MaintainAreaSelectionModel()


... 

    var body: some View {

        VStack {
            Image("Timeline")

            TabView(selection: $model.lastSelectedMaintainAreaIndex) {

                SomeView()
                    .tabItem({

                            Image("Timeline")
                            Text("Title")
                    })
                    .tag(0)
            }
        }
    }
...
Run Code Online (Sandbox Code Playgroud)

虽然第一个Image正确显示图标,但第二个Image仅显示灰色圆圈。

该图像是目录的一部分Assets,我尝试使用 PDF 矢量图像以及所有尺寸的专用位图(根据 Apple 的 HIG)- 没有区别,始终是灰色的。

知道这里发生了什么吗?是否存在图像必须满足的任何未记录的限制才能发挥作用tabItem

swiftui

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

Xcode 11b4:找不到目录... / lib / swift / undefined

当仅为iOS构建我的项目时,一切都很好。添加Mac选项时,会出现一个奇怪的警告:

ld: warning: directory not found for option '-L/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/undefined'

那么,undefinedXcode在寻找什么呢?以及如何解决?还是仅仅是Xcode中的错误?

xcode compiler-warnings mac-catalyst

7
推荐指数
0
解决办法
108
查看次数

SwiftUI:如何为 TabView 选择设置动画?

TabView .tabItem在 SwiftUI 中点击 a时,目标视图与.tabItem更改相关联。

我试过放

            .animation(.easeInOut)
            .transition(.slide)
Run Code Online (Sandbox Code Playgroud)

作为TabViewForEach内部和.tabItem- 的修饰符,但目标视图总是有很大的变化。

我怎样才能动画这种变化,例如,在选定的视图中滑动,或者交叉溶解它?

我查了谷歌,但没有发现这个问题......

swiftui

7
推荐指数
3
解决办法
2850
查看次数

UIView[Controller]Representable:SwiftUI 子视图显示在调试器中,但在运行时不显示

因为ScrollView不提供设置 的功能contentOffset,所以我尝试使用UIScrollViewas UIViewRepresentable。附加的代码显示了视图和视图控制器的调用者和定义。

在模拟器或预览中运行代码时,只显示一个蓝色区域。调试显示器时,Text,按预期显示。

如果不知道原因 - 是因为我做错了什么,还是因为 Xcode 或 SwiftUI 中存在错误?

这是自定义滚动视图:

struct PositionableScrollView<Content>: UIViewRepresentable where Content: View {


    var content: () -> Content


    init(@ViewBuilder content: @escaping () -> Content) {

        self.content = content
    }


    func makeUIView(context: UIViewRepresentableContext<PositionableScrollView<Content>>) -> UIScrollView {

        let scrollViewVC = PositionableScrollViewVC<Content>(nibName: nil, bundle: nil)

        scrollViewVC.add(content: content)

        let control = scrollViewVC.scrollView
        return control
    }


    func updateUIView(_ uiView: UIScrollView, context: UIViewRepresentableContext<PositionableScrollView<Content>>) {

        // Do nothing at the moment.
    } …
Run Code Online (Sandbox Code Playgroud)

uikit swiftui

6
推荐指数
0
解决办法
1228
查看次数

ScrollView:如何处理大量内容?

这段代码是对.NET的压力测试ScrollView。虽然ForEach包含3000个项目的循环渲染速度可以接受,但是30000的时间很长,而300000的时间是永远的(我在3分钟后停止了)。

但是,在某些情况下,您需要滚动很多内容,请想象一个具有可缩放比例(十年/年/月/日)的时间轴。在这种情况下,可能需要跨越50年才能显示几天,并且用户必须有机会放大和缩小以更改比例。

因此,对我来说,问题是:SwiftUI可以采取哪些策略来优化缓存,预取等,或者找出用户滚动后下一步要显示的部分,并防止模型计算宽度?

更准确地说:模型知道所有要显示的数据。在ScrollView必须提供具有所有项显示的宽度的内容图。这个宽度是我的问题:在没有所有可用商品的情况下,如何以合理的方式确定宽度?

struct TestScrollView: View {

    var body: some View {

        ScrollView(.horizontal, showsIndicators: true, content: {

            HStack(alignment: .bottom, spacing: 1) {

// 3000 is working, 30000 not well, 300000 takes forever:
                ForEach(1 ..< 30000) { index in

                    Rectangle()
                        .fill(Color.yellow)
                        .frame(minWidth: 100, idealWidth: 200, maxWidth: 300, minHeight: 500, idealHeight: 500, maxHeight: 500, alignment: .bottom)
                }
            }
        })
    }
}
``
Run Code Online (Sandbox Code Playgroud)

swiftui

5
推荐指数
1
解决办法
222
查看次数