【问题标题】:Setting Title of UIbuttons in loop in swift快速在循环中设置 UIbuttons 的标题
【发布时间】:2014-10-13 08:23:36
【问题描述】:

我已经做了一个这样的 UIButtons 集合

@IBOutlet var btnChannle1:UIButton!
@IBOutlet var btnChannle2:UIButton!
@IBOutlet var btnChannle3:UIButton!
@IBOutlet var btnChannle4:UIButton!
@IBOutlet var btnChannle5:UIButton!
@IBOutlet var btnChannle6:UIButton!
@IBOutlet var btnChannle7:UIButton!
@IBOutlet var btnChannle8:UIButton!
@IBOutlet var channlesCollection:Array<UIView>!

override func viewDidLoad() {
    super.viewDidLoad()

    channlesCollection.append(btnChannle1)
    channlesCollection.append(btnChannle2)
    channlesCollection.append(btnChannle3)
    channlesCollection.append(btnChannle4)
    channlesCollection.append(btnChannle5)
    channlesCollection.append(btnChannle6)
    channlesCollection.append(btnChannle7)
    channlesCollection.append(btnChannle8)
}

现在我想遍历上面的集合,想要这样的东西

for item in channlesCollection{
        // Set Button Text Line to 2
        // Set Button Text Like this in two line
        /*

        01
        CNN

        02
        BBC

        03
        PTV ...

                */

    }

但是当我这样尝试时。

for item in channlesCollection{
        item.setTitle("Test", forState: UIControlState.Normal)
    }

引发的错误 UIView 没有名为 setTitle 的成员。

【问题讨论】:

    标签: ios collections swift uibutton


    【解决方案1】:

    您需要将项目类型转换为UIButton。代码如下:

    for item in  channlesCollection{
       var button:UIButton = item as UIButton
       button.setTitle("Test", forState: UIControlState.Normal)
     }
    

    【讨论】:

      【解决方案2】:

      您拥有UIView 数组,而他们确实没有setTitle 方法。要么让你的集合类型为UIButton。或者将您当前的收藏项转换为按钮:

      for item in channlesCollection {
          if var button = item as? UIButton {
              button.setTitle("Test", forState: UIControlState.Normal)
          }
      }
      

      【讨论】:

        【解决方案3】:

        UIView 没有成员函数setTitle,但UIButton 有,这可能是你想要的。

        您已将channlesCollection 声明为UIView 的数组,为什么不声明为UIButton 的数组?

        var channlesCollection: [UIButton]!
        

        【讨论】:

        • 我尝试了这个,但是这个错误和崩溃 NSArray 元素无法匹配 Swift Array 元素类型
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多