小编Pot*_*Ion的帖子

UIHostingController 应该扩展以适应内容

我有一个自定义UIViewControllerRepresentable(与布局相关的代码如下所示)。这试图复制本机 SwiftUI ScrollView,除了它从底部滚动,除了顶部。

查看层次结构

view: UIView
|
\- scrollView: UIScrollView
   |
   \- innerView: UIView
      |
      \- hostingController.view: SwiftUI hosting view
Run Code Online (Sandbox Code Playgroud)

当视图初始化时,这一切都按预期工作。托管视图填充了其内容,并且约束确保滚动视图的contentSize设置正确。

但是,当宿主视图的内容更改时,hostingController.view不会调整大小以适合其内容。

从 Xcode 中的应用程序捕获 UI 的屏幕截图。 显示宿主控制器的内容扩展到宿主视图本身的边界之后,没有正确调整大小。

绿色:正如预期的那样,滚动视图与托管视图控制器的大小相匹配。

蓝色:托管视图本身。它保持第一次加载时的大小,并且不会像它应该的那样消耗。

红色:托管视图中的堆栈视图。在此屏幕截图中,内容已添加到堆栈中,导致其展开。结果,您可以看到大小的差异。

UIHostingController(蓝色)应该展开以适应其内容(红色)。

滚动视图的内容大小没有明确设置,因为这是由自动布局处理的。

如果有帮助,约束代码如下所示。

class UIBottomScrollViewController<Content: View>: UIViewController, UIScrollViewDelegate {
    var hostingController: UIHostingController<Content>! = nil

    init(rootView: Content) {
        self.hostingController = UIHostingController<Content>(rootView: rootView)
        super.init(nibName: nil, bundle: nil)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    var scrollView: UIScrollView = UIScrollView()
    var innerView = UIView()

    override …
Run Code Online (Sandbox Code Playgroud)

ios swift ios-autolayout swiftui uihostingcontroller

21
推荐指数
5
解决办法
3429
查看次数

TI-84 Plus随机数发生器算法

编辑:我的主要问题是我想在我的计算机上复制TI-84 plus RNG算法,所以我可以用Javascript或Lua这样的语言编写它,以便更快地测试它.

我尝试使用模拟器,但事实证明它比计算器慢.

仅针对相关人员:还有另外一个问题,但回答这个问题只是说如何将已经生成的数字转移到计算机上.我不想要这个.我已经尝试了类似的东西,但我不得不让计算器在整个周末都运行,但仍然没有完成.

random algorithm calculator texas-instruments ti-basic

15
推荐指数
1
解决办法
4758
查看次数

Google/Firebase 云功能的速率限制?

我正在使用 Firebase 开发一个在内部使用 Cloud Functions 作为 REST API 的应用程序。我的问题是,是否有一种简单的方法来实现类似于slack 使用的每个 IP/每个用户的速率限制,除了基于每个 IP 每个用户,而不是每个应用程序(因为它都是一个应用程序) )。对小突发的可选支持也是可取的。

示例代码(见// TODO:评论):

exports.myCoolFunction = functions.https.onRequest((req, res) => {
        // TODO: implement IP rate-limiting here
        unpackToken(req).then((token) => { // unpackToken resolves with a response similar to verifyIdToken based on the "Authorization" header contents
                // TODO: implement user-based rate-limiting here (based on token.uid)
                if (!req.body) return res.status(400).end();
                if (typeof req.body.name !== "string") return res.status(400).end();
                if (typeof req.body.user !== "string") return res.status(400).end(); …
Run Code Online (Sandbox Code Playgroud)

rate-limiting node.js express firebase google-cloud-functions

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

自定义下载管理器javascript

名为mega.com的文件共享网站具有创建自定义下载管理器的功能.下载文件时,它会在网站上显示自定义进度条(可能是将文件加载到缓存中),然后为缓存文件创建下载提示.如何用javascript生成这个?

javascript prompt file download

9
推荐指数
1
解决办法
3727
查看次数

未知的116字节ECDSA私钥格式

iOS 13的CryptoKit框架.rawRepresentation为ECDSA公钥和私钥提供了价值。我一直在尝试对rawRepresentation数据类型进行逆向工程,以便在它与JWK之间进行转换。从公钥表示形式的64字节长度来看,这似乎是一个简单的x || y串联。我猜想那会是私钥x || y || d,但是事实并非如此,因为这样做应该会产生96字节的字符串,而实际rawRepresentation144字节。似乎也不是有效的DER / ASN.1字符串。我还没有找到符合我所得到的实际值的规格。

如您所料,Apple的文档具有很强的描述性。

rawRepresentation:私钥的表示形式,以字节的集合表示。

提供了十六进制的示例密钥对。

Private: 988f8187ff7f00007466815b0d6b02ae1a063198fd1e4923fb1e413195126cc00d30483284186b435726c0c69cc774274ea32eb6a17cbaf2ea88dd7f3a5a2a3ce637bc4b96523c2795035bd2fbeb093b010000000000000000000000000000000000000000000000000000000000000012b2b61abe8beae5aeb6d0bda739235364de96c7f498813cfb0336198dcf9063
Public:  2774c79cc6c02657436b18843248300dc06c129531411efb23491efd9831061a3b09ebfbd25b0395273c52964bbc37e63c2a5a3a7fdd88eaf2ba7ca1b62ea34e
Run Code Online (Sandbox Code Playgroud)

这是什么格式?

binary-data key-pair ecdsa swift apple-cryptokit

9
推荐指数
1
解决办法
137
查看次数

自定义变量类型Lua

我在lua中寻找一个库/函数,允许你有自定义变量类型(甚至可以使用"type"方法检测为自定义类型).我正在尝试制作一个自定义类型为"json"的json编码器/解码器.我想要一个可以单独用lua完成的解决方案.

variables lua

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

如何在 Linux 上为 iOS 框架添加 VSCode 编辑器补全

当我离开 Mac 时,我仍然希望能够使用 VSCode 在我的 Linux 机器上起草 Swift 代码。但我无法sourcekit-lsp识别 iOS SDK 中的模块。

我偶尔会使用 Mac,但主要使用 Linux 机器。因此,我可以在 Mac 上构建应用程序,但我仍然希望能够使用 VSCode 提前在 Linux 机器上起草 Swift 代码。

但我无法sourcekit-lsp识别 iOS SDK 中的模块。与 TypeScript 开发人员类似references.d.ts,但速度很快,并且只有 VSCode/sourcekit-lsp 关心它。

我四处挖掘并Xcode.app发现了各种文件,在查看文本编辑器后,它们看起来提供了我想要的内容,但我不知道如何查看它们。.modulemap.swiftinterfacesourcekit-lsp

强调一下,我不期望也不希望能够在 Linux 机器上编译iOS 代码。在我的故障排除中,我swift build只用来查找更有意义的错误。我不期望实际的构建发生——这就是 Mac 的用途。我只是希望能够在 VSCode 中使用本机模块(例如 UIKit)的自动完成功能,以便稍后将其复制到 Mac 上进行测试。

我知道,这是一个奇怪的工作流程,但这是我现在可以访问的。

设置

我已经下载了 Xcode 11 beta 并将其解压,以便我可以访问框架/SDK。但是,我似乎无法找到一种方法来sourcekit-lsp理解各种框架的标头。

另外,swift 安装在/usr/local/bin/swift-5.1-DEVELOPMENT-SNAPSHOT-2019-06-21-a-ubuntu18.04.

由于sourcekit-lsp没有记录很多错误,我决定swift build一遍又一遍地尝试,尽可能接近“工作”,直到希望sourcekit-lsp …

ios swift visual-studio-code language-server-protocol

5
推荐指数
0
解决办法
781
查看次数

从 SwiftUI 列表访问底层 UITableView

使用List视图,是否有一种方法可以访问(并因此修改)底层UITableView对象,而无需将整个对象重新实现ListUIViewRepresentable

我已经尝试List在我自己的内部初始化 a UIViewRepresentable,但我似乎无法让 SwiftUI 在需要时初始化视图,而且我只是得到一个UIView没有子视图的空基本视图。

这个问题是为了帮助找到SwiftUI 中底部优先滚动的答案。


或者,在 SwiftUI 中重新实现的库或其他项目UITableView也可以回答这个问题。

uitableview ios swift swiftui swiftui-list

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

自定义对数Lua(答案有几乎可用于任何语言的技巧)

我正在研究lua的基本转换器,它可以将任何数字的基数转换为另一个基数.为此,我需要一个对数计算器.示例函数(其中logarithm(100, 10)等于log 10(100),等于2):

function logarithm(value, base)
    ... -- Algorithm here
end
print(logarithm(100, 10))
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

2
Run Code Online (Sandbox Code Playgroud)

PS:我希望算法接受任何基数,任何值.

math lua logarithm

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

Javascript - 将变量存储为对象和函数

我已经看到变量的实例既是对象又是字符串.例:

alert(x + ""); // Hello
alert(x()); // World
Run Code Online (Sandbox Code Playgroud)

这种事情是jQuery对$变量的作用.

你怎么会得到这种效果?

javascript variables object

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