gpt4 book ai didi

ios - 如何使用 Swift 在 UICollectionViewCell 中设置 UIButton 的标题

转载 作者:行者123 更新时间:2023-11-29 01:30:38 24 4
gpt4 key购买 nike

我有一个带有 UICollectionView 的 ViewController,我想在其中显示用户好友列表中玩家的前两个字母,如下所示:

func collectionView(collectionView: UICollectionView,
cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

contactListCollection.registerClass(PlayerCell.self, forCellWithReuseIdentifier: "PlayerCell")

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("PlayerCell", forIndexPath: indexPath) as! PlayerCell

let contacts = contactList.getContactList() //Array of strings

for(var i = 0; i < contacts.count; i++){

var str = contacts[i]
// First two letters
let firstTwo = Range(start: str.startIndex,
end: str.startIndex.advancedBy(2))

str = str.substringWithRange(firstTwo)

cell.setButtonTitle(str);
}


return cell;
}

func collectionView(collectionView: UICollectionView,
numberOfItemsInSection section: Int) -> Int {

return contactList.getContactList().count;
}

我的 PlayerCell 类如下:

   class PlayerCell : UICollectionViewCell {

@IBOutlet var button: UIButton?

func setButtonTitle(text: String){
button!.setTitle(text, forState: .Normal)
}
}

当运行它给出的代码时: fatal error :在解包可选值时意外发现 nil

我发现我的 PlayerCell 中的按钮为零

我已在 Storyboard的单元格内添加了按钮,并将这些按钮与引用 socket 连接起来

我是不是漏掉了什么?

将 xCode 7 与 Swift 2.0 结合使用

最佳答案

作为编译过程的一部分,Xcode 将 Storyboard转换为 XIB 文件的集合。其中一个 XIB 文件包含您的电池设计。

当您的应用程序加载您在 Storyboard中设计的 Collection View Controller 时,该 Controller 负责为单元格注册单元格的 XIB 文件。

您正在通过调用 registerClass(_:forCellWithReuseIdentifier:) 覆盖该注册,切断“PlayerCell”重用标识符与包含 PlayerCell 设计的 XIB 之间的连接.

去掉这一行:

contactListCollection.registerClass(PlayerCell.self, forCellWithReuseIdentifier: "PlayerCell")

此外,请确保在 Storyboard中您已将单元格的重用标识符设置为“PlayerCell”。

关于ios - 如何使用 Swift 在 UICollectionViewCell 中设置 UIButton 的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33501681/

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