【问题标题】:UIPickerViewDelegate in SwiftSwift 中的 UIPickerViewDelegate
【发布时间】:2015-09-15 06:35:49
【问题描述】:

我正在学习关于 lynda 的基本 Swift 和 Xcode 教程。现在我们有了一个使用 Picker 视图和自定义数据的代码。这个想法很简单,向那个旋转的轮子添加数据,但我很难阅读这个协议中的方法。有这个——pickerView:titleForRow:forComponent:

我想知道它是如何获得行值的。用手指旋转轮子还是??该方法的代码如下:

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return moodArray[row]
    }

【问题讨论】:

    标签: swift function methods protocols


    【解决方案1】:

    选择器视图正在向其委托人提问。 “对于索引 x 处的行和列(组件),我的标题应该是什么?给我发送一个字符串让我知道”

    您可以从心情数组中返回一个字符串。快乐,悲伤,暴躁,迷茫。这取决于你。

    使用委托方法是为了创建 UI 组件不需要子类化对象。从字面上看,您将工作委托给外部承包商。

    【讨论】:

    • 我想我现在明白了。我还有一个较小的问题。我在某处看到委托协议,某处协议。这些术语是一样的吗?还是有什么大的不同?
    • 或多或少是一样的。协议是对象在采用协议时应该实现的一堆方法。有时方法是可选的,有时不是。委托协议只是对协议存在原因的额外语义解释。
    • 谢谢。还有一个问题。这个语法我不熟悉:titleForRow row: Int,为什么type前有2个名字?
    • 检查 Swift book 中的Function Parameter Names (p274?)。第一个是外部名称,第二个是函数内部。在这种情况下,它来自自动 Obj-C 转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2014-07-24
    相关资源
    最近更新 更多