小编use*_*510的帖子

UIScrollView 中的 SwiftUI View 和 UIHostingController 中断滚动

当我添加一个包含 SwiftUI 视图作为 childView 的 UIHostingController,然后将该 childView 放入 UIScrollView 中时,滚动会中断。

在这里我有我的观点

struct TestHeightView: View {
    let color: UIColor
    
    var body: some View {
        VStack {
            Text("THIS IS MY TEST")
                .frame(height: 90)
        }
            .fixedSize(horizontal: false, vertical: true)
            .background(Color(color))
            .edgesIgnoringSafeArea(.all)
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个 UIViewController 和一个 UIScrollView 作为子视图。UIScrollView 内部有一个 UIStackView,它被正确设置为允许加载 UIView 并在堆栈高度变得足够大时滚动它们。这有效。如果我要加载 40 个 UILabels,它会完美地滚动它们。

当我添加一个普通的旧 UIView,然后在该容器内添加一个 UIHostingController 时,问题就出现了。我这样做是这样的:

        let container = UIView()
        container.backgroundColor = color.0
        stackView.insertArrangedSubview(container, at: 0)
        let test = TestHeightView(color: color.1)
        let vc = UIHostingController(rootView: test)
        vc.view.backgroundColor = .clear

        add(child: …
Run Code Online (Sandbox Code Playgroud)

uiscrollview swift swiftui

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

如何为在 Xcode 中构建和调试的 macOS 应用程序启用完全磁盘访问

我有一个可以访问系统文件的应用程序。当我构建并存档应用程序时,我可以将该应用程序拖到“设置”>“安全和隐私”>“隐私”>“完整磁盘访问”中,并授予其完全权限

但是,当使用 Xcode 构建应用程序时,如何启用此功能?我不知道 Xcode 在哪里存储在 Xcode 中运行的临时二进制文件。如果我没有路径,我就无法授予它权限。

如何对正在 Xcode 中构建和存档但尚未存档的应用程序启用全磁盘访问

macos xcode

6
推荐指数
1
解决办法
2809
查看次数

在 Swift 中从 Cocoa App 运行终端命令失败:“找不到命令”,但可以在 swift 中使用命令行工具

我创建了一个应用程序,将我的所有 iMessage 信息导出到我用于日记的应用程序中。它访问 Libary/Messages/ 中的 chat.db 文件来执行此操作。这部分效果很好

我被要求使用框架,而命令行工具不允许您在 macOS 中捆绑框架。我更希望这一切都是一个脚本并完全避免使用 Cocoa,但由于需要捆绑框架,因此需要使用完整的 Cocoa 应用程序

我可以输入类似命令pwd并得到响应。但是,当我尝试运行日记应用程序的终端命令时,它失败并显示“找不到命令”

如果我从终端内或从 Xcode 中的 Swift 命令行工具运行完全相同的命令,它就会起作用。然而,现在我使用的是实际的 Cocoa 应用程序,它无法工作。

这是我的代码的示例:

   let pipe = Pipe()
let task = Process()
task.launchPath = "/bin/sh"
task.arguments = ["-c", String(format:"%@", "dayone2 new 'Hello'")]
task.standardOutput = pipe
let file = pipe.fileHandleForReading
task.launch()
if let result = NSString(data: file.readDataToEndOfFile(), encoding: String.Encoding.utf8.rawValue) {
    return result as String
}
else {
    return "--- Error running command - Unable to initialize string from file data ---" …
Run Code Online (Sandbox Code Playgroud)

macos xcode cocoa swift

4
推荐指数
1
解决办法
2371
查看次数

Swift Combine sink 值与@Published 属性的值不同

我遇到了一个问题,在 Combine 中有一个布尔值 @Published 属性。

当我将它设置为 true 时,接收器关闭就会运行,我可以查看接收到的值。这是真的。但是当我将它与我观察到的实际属性进行比较时,它们是不同的。

这段代码可以简单地在操场上运行。我不确定这是如何工作的,或者为什么值会不同

class TestModel {
    @Published var isLoading = false
}

let model = TestModel()

model.$isLoading.sink { (isLoading) in
    if isLoading != model.isLoading {
        print("values NOT same")
    }
}

model.isLoading = true
Run Code Online (Sandbox Code Playgroud)

swift combine

4
推荐指数
1
解决办法
1086
查看次数

来自 UITextView 或 UILabel Swift 图像的自定义项目符号

我正在创建一个应用程序,它基本上是大型网站的移动版本。该网站有一个特定区域列出产品功能。每个功能都带有一个独特的自定义图像。

有没有办法快速做到这一点?本质上,创建一个字符串项目符号列表,而是使用小图像作为项目符号点?

uitextview swift

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

将 xib 文件添加到 Swift 包

我想开始使用模块化代码以及与 Xcode 11 的新 Swift Package Manager 集成。

问题是我似乎无法向我的新包添加任何类型的 UI 文件。我只需要添加一个xib文件。

这是如何实现的?

xcode swift swift-package-manager

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

如何使用大于和小于.像5-10的范围

我的应用程序使用动画在屏幕上推送项目.如果有超过3个项目,它会更改动画,再添加10个项目会更改动画.

我为我的应用创建了iF和if语句.首先是:if items = 0.然后没有动画

第二是else if items < 3.然后我减少了力量

第三是else items = 0.然后没有动画

我想要做的是为一系列数字创建一个if语句:即. else if items >= 7, but <= 3.然后,如果有3-7个项目的任何地方,力量将是:......

这是我正在处理的代码示例:

else if
        ([self.reorderedButtons count] <= 4) {
        pushBehavior.pushDirection      = CGVectorMake(0, self.force * .5);
        [self.animator addBehavior:pushBehavior];
Run Code Online (Sandbox Code Playgroud)

objective-c ios

0
推荐指数
1
解决办法
47
查看次数