相关疑难解决方法(0)

Apple如何知道您正在使用私有API?

我向Apple提交了一个没有任何源代码的二进制文件.

除了手动检查源代码外,Apple如何知道使用了什么以及您调用了哪些API?

iphone objective-c appstore-approval

109
推荐指数
4
解决办法
4万
查看次数

SwiftUI ScrollView:如何修改.content.offset又名Paging?

问题

如何修改scrollView的滚动目标?我正在寻找一种替代“经典” scrollView委托方法的方法

override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)

......在这里我们可以modfify目标scrollView.contentOffset通过targetContentOffset.pointee例如创建一个自定义分页行为。

或者换句话说:我确实想在(水平)scrollView中创建分页效果。

我尝试过的就是 是这样的:

    ScrollView(.horizontal, showsIndicators: true, content: {
            HStack(alignment: VerticalAlignment.top, spacing: 0, content: {
                card(title: "1")
                card(title: "2")
                card(title: "3")
                card(title: "4")
            })
     })
    // 3.
     .content.offset(x: self.dragState.isDragging == true ? self.originalOffset : self.modifiedOffset, y: 0)
    // 4.
     .animation(self.dragState.isDragging == true ? nil : Animation.spring())
    // 5.
    .gesture(horizontalDragGest)
Run Code Online (Sandbox Code Playgroud)

尝试

这是我尝试过的方法(除了自定义的scrollView方法):

  1. scrollView的内容区域大于屏幕空间,因此根本无法滚动。

  2. 我创建了一个,DragGesture()以检测是否有阻力在继续。在.onChanged和.onEnded闭包中,我修改了@State值以创建所需的scrollTarget。

  3. 有条件地将原始未更改的值和新修改的值都馈送到.content.offset(x:y :)修饰符中-取决于dragState作为缺少的scrollDelegate方法的替代。

  4. 仅在拖动结束时才有条件地添加动画。

  5. 将手势附加到scrollView。

长话短说。没用 我希望我能解决我的问题。

有什么解决办法吗?期待任何投入。谢谢!

scrollview ios13 swiftui

11
推荐指数
3
解决办法
2173
查看次数

iOS 14.2 中的 SwiftUI PageTabView 性能问题滞后

我将 TabView 与 PageTabViewStyle 一起使用,每个子视图都包含一个带有大数据集的列表视图。

仅在 iOS 14.2 上,页面转换似乎非常滞后。

但是,在具有少量数据的列表视图中,页面转换不会延迟。

我猜测 TabView 包含列表的性能将与数据量无关,因为列表行显示是惰性的。

所以,我相信这是错误或默认视图样式更改。

我期待着您的帮助来解决这个问题。谢谢

@available(iOS 14.0, *)
struct ContentView: View {
    @State var showHeart: Bool = false
    var body: some View {
        TabView{
            self.contents
            self.contents
        }
        .tabViewStyle(PageTabViewStyle())
    }
    var contents: some View{
        List(0..<1000){_ in
            Text("HELLO WORLD HELLOWORLD")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

performance xcode ios swift swiftui

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

SwiftUI - PageView - 在不同的视图中传递

我通过线程在 SwiftUI 中成功实现了 PageView:
如何在 SwiftUI 中实现 PageView?

只要所有视图都具有相同的结构,通过数组传递多个视图就像一个魅力。
PageView([TestView(), TestView()]).
但是,我想传递不同的观点。
PageView([TestView(), AnotherView(), DifferentView()]).

所有视图都是 SwiftUI 类型:
struct NAME : View { code }

当我尝试向数组添加不同的结构时,我收到以下错误消息:

var pageViewViewArray = [TestView(), AnotherView(), DifferentView()]
Run Code Online (Sandbox Code Playgroud)

异构集合字面量只能推断为“[Any]”;如果这是有意的,请添加显式类型注释。
插入'为[任何]

通过将其转换为:

var pageViewViewArray = [TestView(), AnotherView(), DifferentView()] as! [Any]
PageView(pageViewViewArray)
Run Code Online (Sandbox Code Playgroud)

PageView 会说:

协议类型“Any”不能符合“View”,因为只有具体类型才能符合协议

我将不胜感激任何想法。

uiview uipageviewcontroller swift swiftui

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

SwiftUI:如何实现用户滑动分页?(以前使用过 UICollectionView -&gt; 启用分页)

背景:我正在将一个项目从 UIKit 转换为 SwiftUI。目前使用 UIKit,我在 UICollectionView 中有一个 UICollectionView,两者都启用了分页。这允许用户在单元格上向上/向下和向左/向右滑动。每个单元格都会填充整个屏幕(类似于 TikTok 的主 UI),并且每个单元格都有大量要从 Firebase 中提取的数据,因此我不想在第一个视图出现时加载所有项目,而是在每个单元格出现时加载所有项目(这是 UIKit 下通过 UICollectionView 委托的当前实现)。

问题:我找不到在 SwiftUI 中启用此“分页”(基于用户滑动)的方法。很难想象苹果制作的这个新框架没有 Paging 功能?如果他们没有包含此内容,是否有解决方法?否则,是否有一种简单的方法将 UICollectionView 包含到 SwiftUIView 中?

任何帮助或解决方法都会很好!谢谢 :)

listview ios uicollectionview swift swiftui

5
推荐指数
2
解决办法
8188
查看次数

SwiftUI 中的双向无限 PageView

我正在尝试制作一个双向 TabView (带有.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))),其数据源会随着时间的推移而改变。

下面的代码描述了预期的结果:

class TabsViewModel: ObservableObject {
    @Published var items = [-2, -1, 0, 1, 2]
    @Published var selectedItem = 2 {
        didSet {
            if let index = items.firstIndex(of: selectedItem), index >= items.count - 2 {
                items = items + [items.last! + 1]
                items.removeFirst()
            }
            
            if let index = items.firstIndex(of: selectedItem), index <= 1 {
                items = [items.first! - 1] + items
                items.removeLast()
            }
        }
    }
}

struct TabsView: View {
    @StateObject var vm = TabsViewModel() …
Run Code Online (Sandbox Code Playgroud)

pageviews ios tabview swift swiftui

5
推荐指数
2
解决办法
2963
查看次数

有没有办法找到实际的SwiftUI API文档(而不仅仅是开发人员文档)?

我目前正在观看WWDC 2019的SwiftUI Essentials视频,演示者为VStack提取了实际的API,(至少对我而言,这令人难以置信)详细说明了此特定结构的实际工作方式。

开发人员是否可以找到有关Apple提供的特定功能的此类详细,深入的文档?

马特·史蒂文斯(Matt Stevens)拥有一个很棒的APIdiff(http://codeworkshop.net/objc-diff/sdkdiffs/)网站,但该网站均链接回Apple的标准开发人员文档页面。

演示者提供的示例代码:

public struct VStack<Content : View> : View {
     public init(
          alignment: HorizontalAlignment = .center,
          spacing: Length? = nil,
          @ViewBuilder content: () -> Content
     )
}
Run Code Online (Sandbox Code Playgroud)

实际提供的文档代码:

struct VStack<Content> where Content : View
Run Code Online (Sandbox Code Playgroud)

上面关于对齐默认值的细节以及单独的间距长度虽然非常简单,但已经作为跨站点的单独SO问题被问及关于默认行为是什么以及为什么是默认行为的问题。

我想我要问的是,例如,对于UIKit中当前的,更完善的类,是否有办法查看类本身的实际实现细节,例如在此SwiftDC VStack的WWDC中显示的?我不确定这是苹果公司从未提供过的信息,还是人们随着时间的推移而学到的信息(这种行为以某种方式“只是因为”并且我们从经验中知道),或者这仅仅是事实, SwiftUI是新功能,Apple还没来得及巩固SwiftUI和文档。

抱歉,是否有人问过这个问题,或者这是一个非常明显的问题,总体而言,我还是一个新手。

谢谢!

swift swiftui

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