我有一个带有CustomCollectionViewCell类的UICollectionView。 在单元格里面,我有一个我用故事板设置的按钮。我希望按钮在点击时改变颜色,但是我选择的颜色与标题的阴影颜色不同于选择后的背景。
我尝试使用setTitleShadowColor:ForState
和.Selected
与.Normal
进行修复。但它似乎没有做任何事情。
的ViewController:
...
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return numberOfButtons
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CustomCollectionViewCell
cell.setContents(indexPath.row)
return cell
}
...
CustomCollectionViewCell:
...
func setContents(row: Int) {
buttonInCell.setTitle(String(row + 1), forState: .Normal)
buttonInCell.setTitleColor(UIColor.blueColor(), forState: .Normal)
buttonInCell.layer.backgroundColor = UIColor.whiteColor().CGColor
buttonInCell.layer.cornerRadius = buttonRadius
buttonInCell.layer.borderColor = UIColor.blueColor().CGColor
buttonInCell.layer.borderWidth = buttonBorderWidth
}
func changeButtonStatus(sender: UIButton) {
if sender.selected {
sender.setTitleColor(UIColor.blueColor(), forState: .Normal)
sender.layer.backgroundColor = UIColor.whiteColor().CGColor
} else {
sender.setTitleColor(UIColor.blueColor(), forState: .Normal)
sender.layer.backgroundColor = UIColor.blueColor().CGColor
}
}
// MARK: Actions
@IBAction func buttonInCellTapped(sender: UIButton) {
changeButtonStatus(sender)
sender.selected = !sender.selected
}
...
答案 0 :(得分:0)
我刚刚找到了一个解决方案,只需将按钮类型更改为" custom"在Xcode的属性检查器中。