gpt4 book ai didi

ios - Swift 中用于自定义组件的面向协议(protocol)编程

转载 作者:搜寻专家 更新时间:2023-10-31 08:30:50 25 4
gpt4 key购买 nike

我有一个 UIViewControllerUIView(作为组件)。以下是该组件的代码。

class ProcessingProgressIndicator: UIView {

var progressView: UIProgressView!

func changeProgress(_ progress: Float) {
progressView.progress = progress
}
}

所以我在多个 Controller 中使用这个组件。因此,当我需要更改进度值时,我在我的 Controller 中使用了如下所示。

 myProgressView.changeProgress(progress)

因此,为了使组件面向协议(protocol),我在下面添加了代码。

protocol ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float)
}

extension ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float) {
// Method gets called and can change progress
}
}

所以从我的 Controller ,我调用如下方法

updateWith(progressView: progressView,progress: progressData.progress)

这就是我使其面向协议(protocol)的方式。

所以我的问题是:这是正确的实现方式吗?

我需要传递 progressView 的对象,我可以去掉它吗?

最佳答案

因此,为了使组件面向协议(protocol),我在下面添加了代码。

protocol ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float)
}

extension ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float) {
// Method gets called and can change progress
}
}
So from my controller, I call method as below

updateWith(progressView: progressView,progress: progressData.progress)

这就是我使其面向协议(protocol)的方式。

关于ios - Swift 中用于自定义组件的面向协议(protocol)编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com